【问题标题】:ASP.NET MVC - Lock and Unlock User in ASP.NET Identity [closed]ASP.NET MVC - 在 ASP.NET 身份中锁定和解锁用户 [关闭]
【发布时间】:2017-11-10 10:26:52
【问题描述】:

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

请问我该怎么做:

  1. 在 5 次登录尝试失败后自动锁定用户。
  2. 在请求后由管理员手动解锁用户。
  3. 根据角色甚至所有用户向选定的用户发送电子邮件

如何使用 MVC 中的 ASP.NET 标识来编写用户界面代码。

谢谢

【问题讨论】:

  • 您确实需要对此进行更多研究。因此,它可以帮助您解决遇到的特定编码问题。所有这些信息都可以在线获取。

标签: asp.net-mvc


【解决方案1】:
  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);
    }

【讨论】:

  • 非常感谢,非常感谢。但是我如何手动(从界面)解锁锁定的用户。另外,如何,如何向选定的用户发送电子邮件
  • @olugbenga 对于第三个问题,您可以从上表的 hep 中获取电子邮件地址,并可以根据需要设置自己的邮件服务器。
  • 我真的很感激。请给我一个示例,说明如何根据角色查询用户
猜你喜欢
  • 1970-01-01
  • 2018-05-21
  • 1970-01-01
  • 2016-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-05
相关资源
最近更新 更多