【问题标题】:Encrypted UserName In GetRolesForUser RoleProviderGetRolesForUser RoleProvider 中的加密用户名
【发布时间】:2017-02-04 22:54:42
【问题描述】:

I 用 Key 和 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;
        }

以上代码工作正常,但数据未加密时。

但要解密用户名需要 Key 和 Iv 每个用户

我不知道解决办法

【问题讨论】:

    标签: asp.net-mvc encryption asp.net-mvc-5 membership-provider roleprovider


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-04
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 2014-05-20
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      相关资源
      最近更新 更多