【问题标题】:Asp.Net Core check password for adminAsp.Net Core 检查管理员密码
【发布时间】:2016-07-08 17:02:07
【问题描述】:

我希望主管能够为用户覆盖

例如。人未通过检查,需要主管来验证是否可以继续。

我目前有一个从视图返回用户名和密码的表单。我希望能够在不登录的情况下验证他们是主管。

控制器:

[HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> verify(verifyViewModel model)
    {     //this creates the user and their subdomain
         string str_UserName = model.UserName + "@" + model.Subdomain;
            var verify = await _userManager.VerifyPasswordAsync(str_UserName, model.Password);
         if (verify == true){ continue with program }

型号:

    public class verifyViewModel
{
    [Required]
    public string Subdomain { get; set; }

    [Required]
    public string UserName { get; set; }

    [Required]
    [DataType(DataType.Password)]
    public string Password { get; set; }


}

_userManager.VerifyPasswordAsync(str_UserName, model.Password);

我想我错过了一些东西,但我不知道从哪里继续

【问题讨论】:

    标签: asp.net-core asp.net-identity asp.net-core-mvc


    【解决方案1】:
    public async Task<bool> VerifyAdmin(string username, string password)
        {   //GET THE USER WE WANT TO VERIFY.                                          //model.UserName
            var userToVerify = await _context.ApplicationUser.SingleOrDefaultAsync(u => u.UserName == username);
            //IF THE USER IS NOT AN ADMIN, RETURN FALSE.
            if (!userToVerify.IsAdmin)
            {
                return false;
            }
            //INITIALIZE RESULT.
            bool result = false;
            //CHECK THE USERNAME AND PASSWORD.   
            result = await _userManager.CheckPasswordAsync(userToVerify, password);
            //RETURN THE RESULT.
            return result;
        }
    

    这是我们最终想出的解决方案。随时提出更改或升级建议!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      • 2021-10-18
      • 2018-12-26
      相关资源
      最近更新 更多