防止没有确认电子邮件的用户使用身份2登录ASP.Net MVC

阿里克斯

在Microsoft Identity 2中,用户可以确认我从此处下载的Identity 2示例项目的电子邮件地址。在此项目中,用户确认他们的电子邮件之间没有任何区别,我不想告诉谁不确认的人他们的电子邮件无法登录,这是我尝试的方法:

public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
    {
        if (!ModelState.IsValid)
        {
            return View(model);
        }


        var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: true);
        switch (result)
        {
            case SignInStatus.Success:
                {


                    var user = await UserManager.FindByNameAsync(model.Email);
                    if (user != null)
                    {
                        if (!await UserManager.IsEmailConfirmedAsync(user.Id))
                        {
                            //first I tried this.
                            //return LogOff();
                            HttpContext.Server.TransferRequest("~/Account/LogOff");
                            return RedirectToAction("Login");
                        }
                    }

                    return RedirectToLocal(returnUrl);
                }
            case SignInStatus.LockedOut:
                return View("Lockout");
            case SignInStatus.RequiresVerification:
                return RedirectToAction("SendCode", new { ReturnUrl = returnUrl });
            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                return View(model);

我试图通过调用LogOff()操作方法来强制用户退出,但此操作不起作用,并且用户仍保持身份验证。然后尝试使用,Server.TransferRequest()但不知道为什么执行此操作,但是它将用户重定向到带有returnUrl的登录页面=“帐户/注销”,所以在他们确认电子邮件并尝试登录后,他们注销了,我真的很困惑!这是我的LogOff()操作方法:

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult LogOff()
    {
        AuthenticationManager.SignOut();
        return RedirectToAction("About", "Home");
    }

我已经用谷歌搜索了好几天没有运气了!!!!

INFINITY_18

也许有点晚了,但我希望它可以对其他人有所帮助。

加上这个

var userid = UserManager.FindByEmail(model.Email).Id;
        if (!UserManager.IsEmailConfirmed(userid))
        {
            return View("EmailNotConfirmed");
        }

之前

var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);

第一段代码只是检查数据库中是否存在该模型中的电子邮件,并获取其ID以检查是否被确认,如果是,则向用户返回一个视图,并说是这样,如果被确认,则只允许用户签名在。

并像这样删除对结果开关的更改

switch (result)
        {
            case SignInStatus.Success:
                    return RedirectToLocal(returnUrl);
            case SignInStatus.LockedOut:
                return View("Lockout");
            case SignInStatus.RequiresVerification:
                return RedirectToAction("SendCode", new { ReturnUrl = returnUrl });
            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                return View(model);
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

防止未确认电子邮件的用户登录ASP.NET MVC Web API身份(OWIN安全)

来自分类Dev

ASP.NET身份:防止用户在未确认电子邮件的情况下登录

来自分类Dev

具有特殊字符的ASP.NET MVC身份电子邮件/用户名

来自分类Dev

MVC 5-ASP.NET身份-电子邮件确认中的令牌列为空

来自分类Dev

电子邮件确认Asp.net MVC

来自分类Dev

在Asp.net mvc5中使用用户名代替电子邮件作为身份

来自分类Dev

Facebook MVC 5 ASP.NET身份-某些用户的电子邮件为空

来自分类Dev

ASP.NET MVC4获取登录用户的电子邮件

来自分类Dev

没有ASP.NET身份的电子邮件确认和密码策略

来自分类Dev

如果在ASP.NET Core MVC中找不到用户,则使用电子邮件或用户名登录的用户将为空

来自分类Dev

使用asp.net mvc发送电子邮件

来自分类Dev

如何在ASP.NET MVC5 Identity 2中添加HTML电子邮件模板以进行电子邮件确认?

来自分类Dev

使ASP.NET Identity 2.0电子邮件确认令牌可用于WCF和MVC

来自分类Dev

没有密码的ASP.NET MVC身份登录

来自分类Dev

Asp MVC 核心身份电子邮件确认

来自分类Dev

用户在MVC ASP身份中创建帐户时如何禁用电子邮件确认

来自分类Dev

如何在ASP.NET MVC 5中获取外部登录的电子邮件地址

来自分类Dev

ASP.NET Identity 2电子邮件和用户名的分隔,并使用电子邮件登录

来自分类Dev

如何将ASP.NET MVC默认登录页面更改为通过用户名而不是电子邮件地址登录?

来自分类Dev

屏蔽电子邮件的ASP.NET MVC ModelState验证

来自分类Dev

在ASP.NET MVC中创建电子邮件模板

来自分类Dev

使用razor语法在asp.net mvc视图中检查电子邮件地址是否有效

来自分类Dev

如何在ASP.Net Web窗体身份中使用“用户名”而不是“电子邮件地址”登录

来自分类Dev

发送带有附件的加密电子邮件(asp.net mvc,C#)

来自分类Dev

使用ASP.NET MVC发送500条电子邮件:限制

来自分类Dev

使用ASP.NET MVC发送500条电子邮件:限制

来自分类Dev

而不是id在选择列表中使用名字+姓氏+电子邮件asp.net mvc

来自分类Dev

Javascript电子邮件验证错误(在ASP.Net中有效,而在ASP.Net MVC中无效)

来自分类Dev

ASP.NET Web API 2-用户注册电子邮件确认失败

Related 相关文章

  1. 1

    防止未确认电子邮件的用户登录ASP.NET MVC Web API身份(OWIN安全)

  2. 2

    ASP.NET身份:防止用户在未确认电子邮件的情况下登录

  3. 3

    具有特殊字符的ASP.NET MVC身份电子邮件/用户名

  4. 4

    MVC 5-ASP.NET身份-电子邮件确认中的令牌列为空

  5. 5

    电子邮件确认Asp.net MVC

  6. 6

    在Asp.net mvc5中使用用户名代替电子邮件作为身份

  7. 7

    Facebook MVC 5 ASP.NET身份-某些用户的电子邮件为空

  8. 8

    ASP.NET MVC4获取登录用户的电子邮件

  9. 9

    没有ASP.NET身份的电子邮件确认和密码策略

  10. 10

    如果在ASP.NET Core MVC中找不到用户,则使用电子邮件或用户名登录的用户将为空

  11. 11

    使用asp.net mvc发送电子邮件

  12. 12

    如何在ASP.NET MVC5 Identity 2中添加HTML电子邮件模板以进行电子邮件确认?

  13. 13

    使ASP.NET Identity 2.0电子邮件确认令牌可用于WCF和MVC

  14. 14

    没有密码的ASP.NET MVC身份登录

  15. 15

    Asp MVC 核心身份电子邮件确认

  16. 16

    用户在MVC ASP身份中创建帐户时如何禁用电子邮件确认

  17. 17

    如何在ASP.NET MVC 5中获取外部登录的电子邮件地址

  18. 18

    ASP.NET Identity 2电子邮件和用户名的分隔,并使用电子邮件登录

  19. 19

    如何将ASP.NET MVC默认登录页面更改为通过用户名而不是电子邮件地址登录?

  20. 20

    屏蔽电子邮件的ASP.NET MVC ModelState验证

  21. 21

    在ASP.NET MVC中创建电子邮件模板

  22. 22

    使用razor语法在asp.net mvc视图中检查电子邮件地址是否有效

  23. 23

    如何在ASP.Net Web窗体身份中使用“用户名”而不是“电子邮件地址”登录

  24. 24

    发送带有附件的加密电子邮件(asp.net mvc,C#)

  25. 25

    使用ASP.NET MVC发送500条电子邮件:限制

  26. 26

    使用ASP.NET MVC发送500条电子邮件:限制

  27. 27

    而不是id在选择列表中使用名字+姓氏+电子邮件asp.net mvc

  28. 28

    Javascript电子邮件验证错误(在ASP.Net中有效,而在ASP.Net MVC中无效)

  29. 29

    ASP.NET Web API 2-用户注册电子邮件确认失败

热门标签

归档