快速业务通道

Enterprise Library 2.0 -- Security Application Block

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
ty("SHY520", Membership.Provider.Name);

//设置Profile
ProfileBase setuserProfile = ProfileBase.Create(identity.Name);

setuserProfile["Name"] = "SHY520";
setuserProfile["Address"] = "Wuhu China";
//保存Profile信息
setuserProfile.Save();

//读取Profile信息
ProfileBase readuserProfile = ProfileBase.Create(identity.Name);

string Name = readuserProfile["Name"].ToString();
string Address = readuserProfile["Address"].ToString();

Assert.AreEqual(Name,"SHY520");
Assert.AreEqual(Address,"Wuhu China");
}

3、得到某个用户所属角色列表

/**//// <summary>
/// 得到某用户所属角色列表
/// http://pw.cnblogs.com
/// </summary>
/// <returns>角色列表</returns>
public string[] GetUserRoles()
{
IIdentity identity = new GenericIdentity("SHY520", Membership.Provider.Name);

return Roles.GetRolesForUser(identity.Name);

}

与上一个版本的区别基本上就是以上几点,下面我们来看看Security Application Block2.0的基本使用方法:

1、为已授权的用户分配一个Token(记号):

Security Application Block将授权用户的身份信息放进缓存,并返回一个Token,所以我们在使用此方之前需要先配置一个Security Cache,具体方法我就不多说了,可以参考官方教程,下面贴出配置后的App.Config中的代码:

<securityCacheProviders>
<add cacheManagerInstanceName="Cache Manager" defaultSlidingSessionExpirationInMinutes="10"
defaultAbsoluteSessionExpirationInMinutes="60" type="Microsoft.Practices.EnterpriseLibrary.Security.Cache.CachingStore.CachingStoreProvider, Microsoft.Practices.EnterpriseLibrary.Security.Cache.CachingStore, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"
name="Caching Store Provider" />
</securityCacheProviders>

这段代码是在securityConfiguration节中的,其中cacheManagerInstanceName是我们在Caching Application Block中配置的实例。

/**//// <summary>
/// 使用SaveIdentity方法,保存用户身份,并返回一个Token
/// http://pw.cnblogs.com
/// </summary>
/// <returns></returns>
public IToken SaveUserInfo()
{
ISecurityCacheProvider sc = SecurityCacheFactory.GetSecurityCacheProvider("Cache Manager");

//将用户身份装入缓存,并返回一个IToken类型的记号
return sc.SaveIdentity(new GenericIdentity("SHY520"));
}

2、使用Token来验证用户是否已被授权

/**//// <summary>
/// 根据Token来判断用户是否已被授权
/// http://pw.cnblogs.com
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
public bool CheckUserByToken(IToken token)
{
ISecurityCacheProvider sc = SecurityCacheFactory.GetSecurityCacheProvider("Cache Manager");

//得到Token对应的身份IIdentity
IIdentity savedIdentity = sc.GetIdentity(token);
//返回该身份是否已被授权
return savedIdentity.IsAuthenticated;

}

3、结束User Session(即使Token过期)

/**//// <summary>
/// 使用户Token过期
/// http://pw.cnblogs.com
/// </summary>
public void CloseUserSession()
{
ISecur

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号