您的位置:首页 > 产品设计 > UI/UE

Enterprise Library: Security Quickstart代码解析篇, Part 1

2005-02-26 13:22 525 查看
Enterprise Library: Security Quickstart[/b]代码解析篇[/b][/b]

Part 1

Written by: Rickie Lee (rickieleemail#yahoo.com)

My blog: www.cnblogs.com/rickie

Enterprise Library Security Quickstart基于Security Application Block, Database Application Block, Caching Application Block, Configuration Application Block, Cryptography Application Block等构建,是所有Quickstart中较复杂的一个。其中,用户、角色、用户角色关系、Profile等等均存放在数据库中。

Security Application Block Quick Start应用程序运行界面包括Security Database Management, Authentication, Authorization, Profile, Roles等5个部分。

1. Security Database Management[/b]

Security Database Management部分包括用户管理、用户角色关系管理等功能。

如下是增加用户部分代码:

this.databaseManager.InsertUser(this.credentialsForm.Username, this.credentialsForm.Password);

this.DisplayDatabaseResults(SR.UserCreatedMessage(this.credentialsForm.Username));

SecurityDatabaseManager.InsertUser()调用Microsoft.Practices.EnterpriseLibrary.Security.Database.UserRoleManage类的InsertUser方法,将用户信息Username/Password插入数据表,方法如下:

public void InsertUser(string userName, string password)

{

byte[] pwdBytes = SHA1Managed.Create().ComputeHash(ASCIIEncoding.ASCII.GetBytes(password));

if (!this.manager.UserExists(userName))

{

this.manager.CreateUser(userName, pwdBytes);

}

}

如下是Quickstart应用程序中的SecurityDatabaseManager类,该类包含类型UserRoleManager的成员变量manage:

this.manager = new UserRoleManager(DbInstanceName, ConfigurationManager.GetCurrentContext());

SecurityDatabaseManager类提供的方法几乎都是调用Microsoft.Practices.EnterpriseLibrary.Security.Database.UserRoleManager类的方法来实现的,上述2个类的Class Diagram如下所示:



Security Database Management中其它功能,如删除用户、用户角色管理(增加用户角色和删除用户角色)等代码类似。

***

作者:Rickie Lee (rickieleemail#yahoo.com)

本文参考分析Enterprise Library Security Application Block Quickstart应用程序。

References:

1. Microsoft Enterprise Library: Enterprise Library Security Application Block Quickstart.

2. Rickie, Microsoft patterns & practices Enterprise Library January 2005 [中文稿], /article/4622953.html

3. Rickie, Enterprise Library released! /article/4622952.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: