我用密钥和Iv加密和解密数据,并对username进行加密(为我的站点上的每个用户注册创建一个密钥和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;
}以上代码可以正常工作,但当数据未加密时。
但是对于解密,用户名需要密钥和Iv每个用户
我不知道怎么解决
发布于 2017-02-05 14:04:59
我找到了解决方案,在控制器中访问密钥和Iv,当用户登录我的站点时,我加密用户名并传递给FormsAuthentication.SetAuthCookie,该方法的任务是将用户名发送到RoleProvider类(GetRolesForUser方法)。
需要注意的是,:User.Identity.Name返回加密用户名
https://stackoverflow.com/questions/42046568
复制相似问题