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
|