Enterprise Library 2.0 Hands On Lab 翻译(12):安全应用程序块(一)

练习1:应用程序安全性

通过该练习将在一个已经存在的应用程序中添加认证和基于角色的授权。

第一步

打BugSmak.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Security\exercises\ex01\begin,并编译。

第二步 在应用程序中添加认证

1.选择Debug | Start Without Debugging菜单命令运行应用程序。应用程序当前没有可以使用的认证用户。

2.关闭应用程序。

3.在解决方案管理器中选择Security \ SecurityHelper.cs文件,选择View | Code菜单命令,添加如下的命名空间。

using System.Web.Security;

4.在方法Authenticate中添加如下代码。

public static bool Authenticate(string username, string password)
{
  bool authenticated = false;
  // TODO: Authenticate Credentials
  authenticated = Membership.ValidateUser(username, password);
  // TODO: Get Roles
  return authenticated;
}

方法Authenticate将会被窗体LoginForm调用来验证用户身份,Membership.ValidateUser方法实现了用户的验证。Membership系统使用了provider模型,所以应用程序不用去实现数据的存储,ASP.NET ships提供了两种Membership Provider,一是使用Microsoft SQL Server作为数据源,另一个是使用Windows Active Directory。也可以创建自己的Membership Provider,我们已经实现了读取从XML文件中读取application members。

5.在解决方案管理器中选择Security | Providers | ReadOnlyXmlMembershipProvider.cs,并选择View | Code菜单命令回顾一下代码。

ReadOnlyXmlMembershipProvider(继承于MembershipProvider)是一个自定义Provider的示例,它实现从一个未加密的XML文件中读取,这并不是一个好的实践,但是在该练习中却非常的有用。

6.打开App.config文件,查看membership provider的配置,认证数据的存储定义在一个Users.xml的文件中。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.web>
  <membership defaultProvider="ReadOnlyXmlMembershipProvider">
   <providers>
    <add name="ReadOnlyXmlMembershipProvider"
       type="BugSmak.Security.Providers.ReadOnlyXmlMembershipProvider, BugSmak"
       description="Read-only XML membership provider"
       xmlFileName="Users.xml" />
   </providers>
  </membership>
  <roleManager enabled="true"
         defaultProvider="ReadOnlyXmlRoleProvider">
   <providers>
    <add name="ReadOnlyXmlRoleProvider"
       type="BugSmak.Security.Providers.ReadOnlyXmlRoleProvider, BugSmak"
       description="Read-only XML role provider"
       xmlFileName="Users.xml" />
   </providers>
  </roleManager>
 </system.web>
</configuration>

如果有一个自定义的Provider,必须对应用程序进行配置。

时间: 2024-12-30 22:11:39

Enterprise Library 2.0 Hands On Lab 翻译(12):安全应用程序块(一)的相关文章

Enterprise Library 2.0 Hands On Lab 翻译(4):日志应用程序块(一)

练习1:添加日志记录到应用程序中 该练习将示范如何向已有的应用程序中添加日志和监测(Trace姑且这么翻译吧,不太准确),并通过Enterprise Library Configuration工具来配置TraceListeners. 第一步 打开EnoughPI.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Logging\exercises\ex01\begin,并编译. 第

Enterprise Library 2.0 Hands On Lab 翻译(3):数据访问程序块(三)

练习3:加密数据库连接信息 通过该练习,你将学会如何去加密数据库连接信息. 第一步 打开DataEx3.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Data Access\exercises\ex03\begin,并编译. 第二步 加密数据库连接字符串 1.在Enterprise Library1.1中加密连接字符串,需要依赖于Cryptography Application

Enterprise Library 2.0 Hands On Lab 翻译(15):加密应用程序块(二)

练习2: 使用哈希加密密码 在本练习中将使用哈希加密密码并存储在XML文件中. 第一步 打BugSmak.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Cryptography\exercises\ex02\begin,并编译. 第二步 回顾应用程序 1.选择Debug | Start Without Debugging菜单命令运行应用程序. 2.应用程序允许在一个XML文件中

Enterprise Library 2.0 Hands On Lab 翻译(10):缓存应用程序块(二)

练习2:持久缓存 该练习将示范如何持久缓存. 第一步 打开EmployeeBrowser.sln 项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Caching\exercises\ex02\begin,并编译. 第二步 实现离线缓存 1.在解决方案管理器中选择EmployeeServices.cs文件,选择View | Code菜单命令并添加如下命名空间. using Microso

Enterprise Library 2.0 Hands On Lab 翻译(7):异常应用程序块(一)

练习1: 记录异常信息 通过本练习,将会在一个没有异常处理的应用程序中使用异常处理应用程序块添加本地和全局的异常处理,并记录到Windows事件日志中. 第一步 打开Puzzler.sln 项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Exception Handling\exercises\ex01,并编译. 第二步 回顾应用程序 选择Debug | Start Debugging

Enterprise Library 2.0 Hands On Lab 翻译(2):数据访问程序块(二)

练习2:存储过程和使用程序块更新数据 该练习将示范如何用数据访问应用程序调用存储过程,并使用强类型的DataSet来更新数据. 第一步 打开DataEx2.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Data Access\exercises\ex02\begin,并编译. 第二步 在QuickStarts数据库中添加Categories数据表 运行批处理文件SetUpEx0

Enterprise Library 2.0 Hands On Lab 翻译(14):加密应用程序块(一)

练习1:加解密字符串 通过本练习将学习通过加密来保护信息,在这里创建一个类似于IM的聊天应用程序,加密通信过程中的信息. 第一步 打BugSmak.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Cryptography\exercises\ex01\begin,并编译. 第二步 回顾应用程序 1.在解决方案管理器选中Chat.cs文件,选择View | Code菜单命令.Cha

Enterprise Library 2.0 Hands On Lab 翻译(13):安全应用程序块(二)

练习2:在应用程序中使用基于角色的授权 通过该练习将学习使用AuthorizationProvider在应用程序中进行基于角色的授权. 第一步 打BugSmak.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Security\exercises\ex02\begin,并编译. 第二步 企业库配置工具 1.使用Enterprise Library配置工具配置应用程序,可以通过开始

Enterprise Library 2.0 Hands On Lab 翻译(11):缓存应用程序块(三)

练习3:实现后台缓存 该练习将示范如何实现后台加载. 第一步 打开EmployeeBrowser.sln 项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Caching\exercises\ex03\begin,并编译. 第二步 实现后台加载 1.在解决方案管理器中选择EmployeeServices.cs文件,选择View | Code菜单命令,添加如下两个方法,它们将实现在后台加载