我使用Key和Iv加密和解密数据, 和加密的UserName。(为我的网站上的每个用户注册创建一个密钥和iv) 所以我需要指定密钥和iv来解密每个用户名
RoleProvider 中的GetRolesForUser 方法 只有一个参数(用户名)
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;
}
以上代码工作正常,但数据未加密时。
但是对于Decrypt,用户需要Key和Iv每个用户
我不知道解决方案
答案 0 :(得分:1)
我找到了解决方案,在控制器中我访问Key和Iv,当用户登录我的网站时我加密了用户名并传递给FormsAuthentication.SetAuthCookie
,此方法的任务是将用户名发送到 RoleProvider < / strong> class( GetRolesForUser 方法)。
请务必注意 : User.Identity.Name 返回加密用户名