asp.net-mvc – 防止用户没有确认的电子邮件登录ASP.NET MVC与身
发布时间:2020-12-15 19:40:38 所属栏目:asp.Net 来源:网络整理
导读:在微软身份2中有能力确认用户可以确认有哪些电子邮件地址我下载的Identity 2样本项目从 here在这个项目中没有任何区别用户确认他们的电子邮件和谁不想让人怎么没有确认他们的电子邮件无法登录,这是我试过的: public async TaskActionResult Login(LoginView
在微软身份2中有能力确认用户可以确认有哪些电子邮件地址我下载的Identity 2样本项目从
here在这个项目中没有任何区别用户确认他们的电子邮件和谁不想让人怎么没有确认他们的电子邮件无法登录,这是我试过的:
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 =“Account / Logoff”登录页面 [HttpPost] [ValidateAntiForgeryToken] public ActionResult LogOff() { AuthenticationManager.SignOut(); return RedirectToAction("About","Home"); } 我已经google了几天没有任何运气!!!! 解决方法
也许它有点迟了,但我希望它可以帮助别人.
加这个 var userid = UserManager.FindByEmail(model.Email).Id; if (!UserManager.IsEmailConfirmed(userid)) { return View("EmailNotConfirmed"); } 之前 var result = await SignInManager.PasswordSignInAsync(model.Email,shouldLockout: false); 第一个代码块只是检查模型中的电子邮件是否存在于数据库中,并获取其id来检查是否没有确认,如果是,则返回一个视图给用户,如果这样,如果确认只是让用户签名在. 并将此更改删除到结果开关 switch (result) { case SignInStatus.Success: return RedirectToLocal(returnUrl); case SignInStatus.LockedOut: return View("Lockout"); case SignInStatus.RequiresVerification: return RedirectToAction("SendCode","Invalid login attempt."); return View(model); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 什么是 ASP+?微软 .NET 框架
- asp.net – 设置身份验证表单loginUrl动态?
- 是否可以将多个模型对象发送到ASP.NET MVC视图?
- asp.net-core – 你如何解决AspNet Core缺少的依赖关系?
- 在asp.net App_Code目录中使用Nemerle
- asp.net-mvc – 将依赖项注入验证属性Web Api Asp.Net Core
- asp.net – 如何直接在aspx布局页面中嵌入SharePoint 2013
- asp.net – SignalR中的最大消息限制
- ASP。net下ispostback的用法
- asp.net – 如何加密web.config中的一个条目
推荐文章
站长推荐
- asp.net-mvc – 追加?param =到mvc路由
- 使用ASP.NET MVC和JQuery表单插件/文件上传检测I
- asp.net-mvc – 使用ASP.NET MVC导出数据到Excel
- 集成ASP.NET身份的最佳做法 – 它们是否存在?
- asp.net – Service Fabric中的.NET Core RC2
- entity-framework-core – 实体框架Core 2.0许多
- asp.net-mvc – 我可以从Model类(而不是控制器)添
- 下载 – 使用ASP.Net Webapi流式传输大图像
- asp.net-mvc – ELMAH没有记录违规代码行号
- 打开排序时出现ASP.NET GridView CSS问题
热点阅读