- 浏览: 491459 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (329)
- [发布至博客园首页] (12)
- [随笔分类][01] .Net X (59)
- [随笔分类][20] Architecture (16)
- [随笔分类][21] Developer Logs (13)
- [网站分类]Windows 7 (1)
- [随笔分类][13] Oracle & .Net (7)
- [随笔分类][16] Love in China (14)
- [随笔分类][15] Development Tools (20)
- [随笔分类][18] Windows Phone (12)
- [随笔分类][12] Design & Pattern (17)
- [网站分类].NET新手区 (22)
- [网站分类]首页候选区 (2)
- [随笔分类][08] Windows (Server) (13)
- [随笔分类][02] CSLA.Net (3)
- [随笔分类][10] jQuery & javaScript (10)
- [随笔分类][11] SQL Server (4)
- [随笔分类][22] Enterprise Logs (3)
- [随笔分类][03] News (9)
- [随笔分类][19] Quality Assurance (2)
- [随笔分类][05] Silverlight (20)
- [随笔分类][14] Google Earth & .Net (6)
- [网站分类]非技术区 (9)
- [随笔分类][07] WWF (2)
- [随笔分类][04] SharePoint (1)
- [随笔分类][20] Analysis & Design (36)
- [随笔分类][06] WCF (5)
- [随笔分类][12] Architecture (1)
- [随笔分类][09] WPF (0)
- [随笔分类][17] VStudio & Expression (5)
最新评论
-
zhangyy130:
你好,我关于第二段的那个表视图、模型与图这三者的关系我没有看明 ...
UML模型的组成 -
guji528:
谢谢分享!
Enterprise Architect 基础应用 -
studentsky:
好文章,图文并茂!
WCF 第一个用 Visual Studio 2010 创建的WCF服务 -
chen975311486:
用哪个工具画的????
UML中对关系的描述 (二) -
frankies:
继续学习中。。
UML 交互概述图
CSLA.Net 3.0.5 项目管理示例 名值列表基类、只读基类、业务负责人基类
using System; using System.Data; using System.Data.SqlClient; using Csla; using Csla.Data; namespace ProjectTracker.Library { /// <summary> /// 集?成?明?值?对?基?类?,?两?个?泛?型?参?数?,?名?类?型?,?值?类?型?,?因?为?其?中?的?NameValuePair子?对?象?需?要?这?连?个?泛?型?的?支?持? /// /// </summary> [Serializable()] public class RoleList : NameValueListBase<int, string> { #region Business Methods /// <summary> /// 获?得?默?认?的?职?位? /// </summary> /// <returns></returns> public static int DefaultRole() { RoleList list = GetList(); //如?果?列?表?中?有?值?,?返?回?第?一?个?职?位?为?默?认?职?位? if (list.Count > 0) return list.Items[0].Key; else throw new NullReferenceException( "没?有?可?用?的?职?位?,?提?供?默?认?选?择?"); } #endregion #region Factory Methods /// <summary> /// 静?态?的?列?表?成?员?,?这?代?表?着?,?她?是?一?个?公?用?的? /// </summary> private static RoleList _list; /// <summary> /// 返?回?职?位?列?表? /// </summary> public static RoleList GetList() { //如?果?列?表?是?null空?的?,?则?加?载?她? //Fetch提?供?了?一?个?泛?型?,?参?数?Criteria是?使?用?了?基?类?中?默?认?定?义?的?,?这?在?这?里?已?经?足?够?了?,构?造?Criteria //的?时?候?提?供?了?一?个?roleList的?类?型?对?象?typeof可?以?获?得?一?个?类?的?类?型?对?象?,?通?过?这?个?对?象?可?以?获?得?此?类?的?方?法?,?属?性?等?值?,?但?这?里?使?用?初?始?化?不?详? if (_list == null) _list = DataPortal.Fetch<RoleList>(new Criteria(typeof(RoleList))); return _list; } /// <summary> /// Clears the in-memory RoleList cache /// so the list of roles is reloaded on /// next request. /// 就?像?上?面?所?说?的?,?在?内?存?中?清?空?RoleList,?这?样?下?一?次?访?问?就?可?以?从?新?加?载?职?位?列?表?,?这?个?列?表?是?静?态?的?哦?,?如?果?不?清?空?就?会?存?在? /// 清?空?缓?存? /// </summary> public static void InvalidateCache() { _list = null; } /// <summary> /// 默?认?构?造?器? /// </summary> private RoleList() { /* require use of factory methods */ } #endregion #region Data Access private void DataPortal_Fetch(Criteria criteria) { //去?掉?属?性?更?改?事?件? this.RaiseListChangedEvents = false; using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) { cn.Open(); using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "getRoles"; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { //由?于?这?个?基?类?默?认?的?情?况?下?是?只?读?的?,?所?有?在?为?其?添?加?对?象?的?时?候?应?该?将?其?回?复?为?可?写?的?,?修?改?后?再?还?原? IsReadOnly = false; while (dr.Read()) { //加?一?个?名?值?对?的?对?象?到?名?值?集?合?中? this.Add(new NameValuePair( dr.GetInt32("id"), dr.GetString("name"))); } IsReadOnly = true; } } } this.RaiseListChangedEvents = true; } #endregion } }
using System; using System.Data; using System.Data.SqlClient; using System.Collections.Generic; using System.Security.Principal; using Csla; namespace ProjectTracker.Library.Security { /// <summary> /// 继?承?自?只?读?基?类?,?与?.net 安?全?标?志?接?口? /// </summary> [Serializable()] public class PTIdentity : ReadOnlyBase<PTIdentity>, IIdentity { #region Business Methods private bool _isAuthenticated;//是?否?通?过?验?证?标?记? private string _name = string.Empty;//名?字? private List<string> _roles = new List<string>();//权?限?列?表? //验?证?类?型?CSLA public string AuthenticationType { get { return "Csla"; } } //是?否?通?过?验?证?属?性? public bool IsAuthenticated { get { return _isAuthenticated; } } //标?记?名?称? public string Name { get { return _name; } } //重?载?已?获?得?object支?持? protected override object GetIdValue() { return _name; } //是?否?存?在?,?内?联?,?进?调?用?list对?象?的?Contains实?现? internal bool IsInRole(string role) { return _roles.Contains(role); } #endregion #region Factory Methods /// <summary> /// 未?经?验?证?方?法?,?内?部?将?调?用?Identity构?造?器?实?例?化?标?记?类? /// </summary> /// <returns></returns> internal static PTIdentity UnauthenticatedIdentity() { return new PTIdentity(); } /// <summary> /// 获?得?一?个?标?记? /// </summary> /// <param name="username">用?户?名?</param> /// <param name="password">密?码?</param> /// <returns></returns> internal static PTIdentity GetIdentity( string username, string password) { //数?据?门?户?调?用?,?标?准?类?传?递? return DataPortal.Fetch<PTIdentity>(new Criteria(username, password)); } //防?止?意?外?实?例?化? private PTIdentity() { /* require use of factory methods */ } #endregion #region Data Access /// <summary> /// 标?准?类?定?义?有?用?户?名?及?密?码?属?性?,?提?供?移?动?对?象?的?查?询?需?求? /// </summary> [Serializable()] private class Criteria { private string _username; public string Username { get { return _username; } } private string _password; public string Password { get { return _password; } } /// <summary> /// 构?造?器?,?初?始?化?私?有?成?员?变?量?(?或?者?叫?数?据?域?/实?例?域?)? /// </summary> /// <param name="username"></param> /// <param name="password"></param> public Criteria(string username, string password) { _username = username; _password = password; } } private void DataPortal_Fetch(Criteria criteria) { using (SqlConnection cn = new SqlConnection(Database.SecurityConnection)) { cn.Open(); using (SqlCommand cm = cn.CreateCommand()) { cm.CommandText = "Login"; cm.CommandType = CommandType.StoredProcedure; cm.Parameters.AddWithValue("@user", criteria.Username); cm.Parameters.AddWithValue("@pw", criteria.Password); //使?用?的?SqlDataReader using (SqlDataReader dr = cm.ExecuteReader()) { if (dr.Read()) { _name = criteria.Username; //将?验?证?标?记?志?真? _isAuthenticated = true; //如?果?存?在?下?一?个?数?据?集? if (dr.NextResult()) { //装?载?权?限?列?表? while (dr.Read()) { _roles.Add(dr.GetString(0)); } } } else { //没?有?通?过?验?证?则?建?立?一?个?未?经?过?授?权?的?标?记?类? //总?之?他?都?会?将?对?象?传?给?UI用?于?建?立?一?个?负?责?人?对?象?,?提?供?对?权?限?的?支?持? _name = string.Empty; _isAuthenticated = false; _roles.Clear(); } } } } } #endregion } }
using System; using System.Security.Principal; namespace ProjectTracker.Library.Security { /// <summary> /// 继?承?自?框?架?的?安?全?空?间?中?的?业?务?负?责?人?基?类? /// </summary> [Serializable()] public class PTPrincipal : Csla.Security.BusinessPrincipalBase { /// <summary> /// 构?造?函?数?,?提?供?标?准?对?象?做?参?数?初?始?化?给?基?类? /// </summary> /// <param name="identity">标?准?对?象?,?提?供?给?了?基?类?</param> private PTPrincipal(IIdentity identity) : base(identity) { } /// <summary> /// 静?态?登?入?,? /// </summary> /// <param name="username"></param> /// <param name="password"></param> /// <returns></returns> public static bool Login(string username, string password) { //返?回?通?过?方?法?验?证?一?个?标?记?对?象?,?下?面?的?Unauthenticated是?用?来?返?回?无?需?验?证?的?标?记?对?象? PTIdentity identity = PTIdentity.GetIdentity(username, password); // 如?果?验?证?成?功? if (identity.IsAuthenticated) { //利?用?标?记?对?象?,?建?立?负?责?人?对?象? PTPrincipal principal = new PTPrincipal(identity); //将?负?责?人?对?象?交?给?CSLA,?引?用?程?序?上?下?文?中?的?用?户? Csla.ApplicationContext.User = principal; } //返?回?验?证?结?果? return identity.IsAuthenticated; } /// <summary> /// 静?态?登?出?,? /// </summary> public static void Logout() { //使?用?未?经?验?证?的?标?记?方?法?,?生?命?一?个?标?准?方?法? PTIdentity identity = PTIdentity.UnauthenticatedIdentity(); //利?用?未?经?验?证?的?标?记?对?象?,?初?始?化?一?个?负?责?人?对?象?,? PTPrincipal principal = new PTPrincipal(identity); //并?将?此?负?责?人?对?象?,?赋?予?当?前?上?下?文?的?用?户? Csla.ApplicationContext.User = principal; } /// <summary> /// 重?载?基?类?,?判?断?当?前?标?准?类?权?限?是?否?是?参?数?说?的? /// </summary> /// <param name="role">要?判?断?的?权?限?</param> /// <returns></returns> public override bool IsInRole(string role) { //this,?使?用?的?是?业?务?基?类?中?定?义?的?成?员?变?量?,?这?个?变?量?已?经?在?初?始?化?负?责?人?对?象?的?时?候?被?传?输?给?了?业?务?基?类? //获?得?当?前?上?下?文?中?负?责?人?的?标?记? PTIdentity identity = (PTIdentity)this.Identity; //调?用?这?个?标?记?的?方?法?来?判?断?是?否?存?在? return identity.IsInRole(role); } } }
发表评论
-
[转] 面向对象设计原则
2009-08-02 14:23 620一、单一职责原则(S ... -
iBATIS.NET
2009-09-03 17:49 1402下载主页: http://ibatis.apache.org ... -
Castle
2009-09-06 16:23 692下载地址:http://www.castleproject.o ... -
CSLA.Net 3.0.5 版本 教学程序,代码附教学注释
2009-09-13 10:01 1291离开原来的公司后,就 ... -
Enterprise Library 4.1 Caching Block 图文笔记
2009-10-03 23:06 1490一,下载并安装好Enterprise Library ... -
Enterprise Library 4.1 Logging Block 快速使用图文笔记
2009-10-04 12:06 1615一,下载并安装好Enterprise Library ... -
Enterprise Library 4.1 Data Access Block 快速使用图文笔记
2009-10-04 17:30 1270一,下载并安装好Enterprise Library 4. ... -
Enterprise Library 4.1 Cryptography Block 快速使用图文笔记
2009-10-04 20:10 708哈希算法------ http://baike.baidu.c ... -
Enterprise Library 4.1 Security Block 快速使用图文笔记
2009-10-05 08:33 898.Net 2.0 开始,从前Security Block 一部 ... -
Enterprise Library 4.1 Application Settings 快速使用图文笔记
2009-10-05 08:41 873Application Settings 可以使我们运用企业库 ... -
Unity Application Block 1.2 图文学习笔记
2009-10-05 09:05 714此内容将会在数星期后学习 -
Enterprise Library 4.1 Policy Injection Block 快速使用图文笔记
2009-10-05 09:09 715示例源码下载:EL41Sample.rarEnterprise ... -
Enterprise Library 4.1 Instrumentation 快速使用图文笔记
2009-10-05 09:17 742示例源码下载:EL41Sample.rarEnterprise ... -
CSLA.Net 3.0.5 项目管理示例 业务基类 Project.cs
2009-10-06 09:39 1151using System; using System.Coll ... -
CSLA.Net 3.0.5 项目管理示例 业务集合基类(ProjectResources.cs,ProjectResource.cs)
2009-10-06 09:47 862using System; using System.Data ... -
CSLA.Net 3.0.5 项目管理示例 UI ProjectEdit.aspx
2009-10-06 10:23 874<%@ Page Language="C#&q ...
相关推荐
CSLA.NET 框架成为了微软.NET 平台上最广泛应用的开发框架之一,本书介绍了CSLA.NET 3.6 架构背后的构思过程,描述了怎样搭建支持这个架构的框架,如何创建应用程序的业务对象,并且展示了如何使用这个框架创建基于...
[CSLA.NET] Using CSLA 4 eBook Series ☆ 图书概要:☆ The Using CSLA 4 ebook series will teach you how to use CSLA 4 to create powerful object-oriented business layers for your applications, as well ...
[Apress] CSLA .NET 框架企业应用开发艺术 (2008 版本) (英文版) [Apress] Expert C# 2008 Business Objects (E-Book) ☆ 图书概要:☆ In Rockford Lhotka’s Expert C# 2008 Business Objects, you’ll learn ...
CSLA 4 ebook series -- Using CSLA 4 CSLA .NET Overview
《#企业应用开发艺术CSLA.NET框架开发实战》(Expert C#2008 Business Objects)配套源码及例程csla-4.5.700。 CSLA .NET is a software development framework that helps you build a reusable, maintainable ...
csla.net最新的源码版本
Visual Studio CSLA Extension for ADO.NET Entity Framework. Visual Studio extension and T4 templates for generation of CSLA objects ...CSLA.NET框架面向实体框架的代码自动生成工具。 支持VS2012和VS2010。
CSLA.NET框架源码和实例,包括ProjectTracker等。
一个最完整的基于Csla.net的vb源代码,由comexpress生成,学习CSLA 的好资料。
C#企业应用开发艺术CSLA.NET框架开发实战
His industry-standard VB .NET Business Objects book not only addresses changes in .NET 2.0 and Visual Studio 2005, but also reflects substantial enhancements and improvements to the CSLA .NET ...
CSLA.NET是一个在分布式环境下只通过修改配置文件就可以实现N层部署的框架. 它致力于构建丰富,强大而灵活的业务层,包含了验证,权限,数据门户等标准化的解决方案,使你的业务对象更加标准和灵活.它提出了移动对象...
☆☆ 资源说明:☆☆ CSLA .NET 4.3.14 (C#) 框架版本: .NET Framework 4 Silverlight 5 Silverlight 4 Windows Phone 7.5 Mono MonoDroid
C#企业应用开发艺术CSLA.NET框架 4.5,带源码和实例
C#企业应用开发艺术CSLA.NET框架开发实战.part1.rar(PDF加源码)
C#企业应用开发艺术CSLA.NET框架开发实战.rar,包括本书源码
☆ 版本如下:☆ 1.53 2.0 2.0.1 2.0.2 2.0.3 2.1 2.1.1 2.1.2 2.1.3 2.1.4 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.6.3 3.7.0
Expert C# Business Objects图书的源码,基于.net4.0。
CSLA .NET Framework 3.5
CSLA .NET是一个.NET软件开发框架,帮助开发者“为Windows、Web、面向服务和工作流等应用构建强大和可维护的业务逻辑层”。 CSLA是Component-based, ...都能从《C#企业应用开发艺术:CSLA.NET框架开发实战》受益匪浅。