ASP.NET MVC - 在ASP.NET身份中锁定和解锁用户

时间:2017-11-09 14:12:02

标签: asp.net-mvc

作为一名低级开发人员,我正在使用ASP.NET mvc中的ASP.NET身份开发一个关于用户管理的项目。

请问我该怎么做:

  1. 在5次登录尝试失败后自动锁定用户。
  2. 请求后由管理员手动解锁用户。
  3. 根据角色甚至所有用户向所选用户发送电子邮件
  4. 如何在MVC中使用ASP.NET Identity为用户界面编写代码。

    由于

1 个答案:

答案 0 :(得分:3)

  1. 您可以设置MaxFailedAccessAttemptsBeforeLockout=5,如下所示。你可以在
  2. 找到这个
      

    IdentityConfig.cs

    manager.MaxFailedAccessAttemptsBeforeLockout = 5;
    

    你可以在登录时将shouldLockout设置为true,然后再进行5次锁定。

     await `SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: true);`
    
    1. 您可以在
    2. 中看到以下代码
        

      Identityconfig.cs

       manager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(5);
      

      根据分钟设置,将在AspNetUsers表LockoutEndDateUtc列上生成时间戳。根据设置时间,您可以在此场景中编辑向后5分钟的时间。您可以使用特定请求者查询的界面来执行此操作通过userid分别修改LockoutEndDateUtc。

      3.您的角色存储在AspNetRoles表中,用户使用AspnetUserRoles表映射其角色。您可以查询特定角色并检索用户邮件地址。设置邮件服务器以发送电子邮件。

      此处是设置Gmail的代码

      var SenderEmail = new MailAddress(“sendermail”,“”);         var ReciverEmail = new MailAddress(“Destinationmail”,“”);

          var Password = "";
          var subject = "";
          var body = message.Body;
      
          var smtp = new SmtpClient
          {
              Host = "smtp.gmail.com",
              Port = 587,
              EnableSsl = true,
              DeliveryMethod = SmtpDeliveryMethod.Network,
              UseDefaultCredentials = false,
              Credentials = new NetworkCredential(SenderEmail.Address, Password)
      
          };
          using (var mess = new MailMessage(SenderEmail, ReciverEmail)
          {
              Subject = "",
              Body = ""
          })
          {
              smtp.Send(mess);
          }