快速业务通道

Enterprise Library 2.0 -- Security Application Block

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

今天来介绍一下Enterprise Library 2.0中的Security Application Block ,它可以帮助程序开发者在应用程序中实现与授权有关的大部分功能,不仅如此,它还支持缓存我们系统中用户的授权以及,授权数据。主要包括一下几个部分的功能:

1、减少代码编写量;

2、保持应用程序中安全管理的一致性;

3、提供了应用程序中很多安全问题的实现方法;

4、可扩展,支持自定义Provider。

...

关于Security Application Block的介绍部分,我不再多说,具体可以参考帮助文档。下面我们来看一下如何配置Security Application Block,首先打开配置工具,新建一个Security Application Block,如下:

Enterprise Library 2.0 -- Security Application Block

然后在Authorization节点下创建一个Authorization Rule Provider,名称为RuleProvider,如下:

Enterprise Library 2.0 -- Security Application Block

现在就可以在RuleProvider节点下,创建一系列的规则(Rule)了。如下图:

Enterprise Library 2.0 -- Security Application Block

新建了规则,我们还需要为这个规则定义一个表达式,用于在程序中判断是否满足该规则,如下图:

Enterprise Library 2.0 -- Security Application Block

如图所示,我们定义了能通过该规则的用户的身份必须是User或Admin.我们可以根据我们的实际需要定义各种各样的规则。

最后我们可以为我们建立的Security Application Block分配一个默认的Authorization实例,如图:

Enterprise Library 2.0 -- Security Application Block

此时,我们的配置文件中就多了如下内容:

<section name="securityConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Security.Configuration.SecuritySettings, Microsoft.Practices.EnterpriseLibrary.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />

<securityConfiguration defaultAuthorizationInstance="RuleProvider"
  defaultSecurityCacheInstance="">
  <authorizationProviders>
   <add type="Microsoft.Practices.EnterpriseLibrary.Security.AuthorizationRuleProvider, Microsoft.Practices.EnterpriseLibrary.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"
    name="RuleProvider">
    <rules>
     <add expression="R:User OR R:Admin" name="Rule" />
    </rules>
   </add>
  </authorizationProviders>
 </securityConfiguration>

关于Security Application Block的配置就说到这里。

下面来看看Enterprise Library 2.0 的Security Application Block 与1.0版本中的一点区别,因为ASP.NET2.0中提供了角色与成员管理的新特性,所以在某些方面和1.0版本还是有一定的区别:

因为ASP.NET2.0提供了MemberShip,Roles两个类,其中包含了验证用户、角色管理以及对Profile信息的设置与读取功能,所以Security Application Block 2.0将这些功能去掉了。因此和1.0版本的主要区别在于下面三方面:

首先导入下面两个命名空间:

using System.Web.Profile;
using System.Web.Security;

1、验证用户的方法如下:

/**//// <summary>
/// 验证用户
/// http://pw.cnblogs.com
/// </summary>
/// <param name="username">用户名</param>
/// <param name="password">密码</param>
/// <returns></returns>
public bool CheckUser(string username, string password)
{
return Membership.ValidateUser(username, password);
}

2、读取或设置Profile信息

/**//// <summary>
/// 使用 Profile
/// http://pw.cnblogs.com
/// </summary>
[TestMethod]
public void UseProfile()
{
IIdentity identity;
identity = new GenericIdenti

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号