Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc GetRolesForUser角色Provider中的加密用户名_Asp.net Mvc_Encryption_Asp.net Mvc 5_Membership Provider_Roleprovider - Fatal编程技术网

Asp.net mvc GetRolesForUser角色Provider中的加密用户名

Asp.net mvc GetRolesForUser角色Provider中的加密用户名,asp.net-mvc,encryption,asp.net-mvc-5,membership-provider,roleprovider,Asp.net Mvc,Encryption,Asp.net Mvc 5,Membership Provider,Roleprovider,我用密钥和Iv加密和解密数据, 和加密用户名。为我网站上的每个用户注册创建密钥和iv 所以我需要指定密钥和iv来解密每个用户名 RoleProvider中的GetRolesForUser方法 只有一个参数用户名 public override string[] GetRolesForUser(string username) { var roles = (from u in db.Users join r in db.Rol

我用密钥和Iv加密和解密数据, 和加密用户名。为我网站上的每个用户注册创建密钥和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;
        }
以上代码工作正常,但数据未加密时

但对于解密用户名,需要对每个用户进行密钥和Iv


我不知道解决方案

我找到了解决方案,在控制器I访问密钥和Iv中,当用户登录我的站点时,我加密用户名并传递到FormsAuthentication.SetAuthCookie,此方法的任务是将用户名发送到RoleProvider类GetRolesForUser方法

需要注意的是:User.Identity.Name返回加密的用户名