GetRolesForUser RoleProvider 中的加密用户名
Encrypted UserName In GetRolesForUser RoleProvider
我用密钥和 Iv 加密和解密数据,
和加密的用户名。(为每个在我的网站上注册的用户创建一个密钥和 iv)
所以我需要指定密钥和 iv 来解密每个用户名
GetRolesForUser RoleProvider 中的方法
只有一个参数(用户名)
public override string[] GetRolesForUser(string username)
{
var roles = (from u in db.Users
join r in db.Roles on u.RoleId equals r.Id
where u.UserName == username
select r.RoleNameInSystem).ToArray();
return roles;
}
以上代码工作正常,但数据未加密时。
但是对于解密用户名需要Key和Iv每个用户
我不知道解决方案
我找到了解决方案,在控制器中我访问了 Key 和 Iv,当用户登录我的站点时,我加密用户名并传递给 FormsAuthentication.SetAuthCookie
,此方法的任务是将用户名发送到 RoleProvider class(GetRolesForUser 方法)。
需要注意的是:User.Identity.Namereturn 加密用户名
我用密钥和 Iv 加密和解密数据, 和加密的用户名。(为每个在我的网站上注册的用户创建一个密钥和 iv) 所以我需要指定密钥和 iv 来解密每个用户名
GetRolesForUser RoleProvider 中的方法 只有一个参数(用户名)
public override string[] GetRolesForUser(string username)
{
var roles = (from u in db.Users
join r in db.Roles on u.RoleId equals r.Id
where u.UserName == username
select r.RoleNameInSystem).ToArray();
return roles;
}
以上代码工作正常,但数据未加密时。
但是对于解密用户名需要Key和Iv每个用户
我不知道解决方案
我找到了解决方案,在控制器中我访问了 Key 和 Iv,当用户登录我的站点时,我加密用户名并传递给 FormsAuthentication.SetAuthCookie
,此方法的任务是将用户名发送到 RoleProvider class(GetRolesForUser 方法)。
需要注意的是:User.Identity.Namereturn 加密用户名