asp.net-mvc – 防止用户没有确认的电子邮件登录ASP.NET MVC与身份2
发布时间:2020-05-23 03:36:23 所属栏目:asp.Net 来源:互联网
导读:在微软身份2中有能力确认用户可以确认有哪些电子邮件地址我下载的Identity 2样本项目从 here在这个项目中没有任何区别用户确认他们的电子邮件和谁不想让人怎么没有确认他们的电子邮件无法登录,这是我试过的: public async TaskActionResult Login(LoginViewM
|
在微软身份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-mvc-3 – 更改ASP.NET MVC 3文件夹结构
- asp.net-mvc – visual studio 2013“添加控制器”丢失
- asp.net-mvc – 我如何编写一个ActionFilter来确保AntiForg
- asp.net – SignalR:如何强制认证/终止中心连接服务器端
- asp.net-mvc – 在asp.net MVC中授权属性和jquery AJAX
- asp.net-mvc – 如何更改MVC Core ValidationSummary的默认
- asp.net-mvc-3 – 偶数和奇数表行与Razor
- 经典Asp中的多行字符串
- asp.net – Web部署项目的更好替代品
- asp.net-mvc-4 – MVC 4 RC – Aspnet_regsql.exe
推荐文章
站长推荐
- asp.net-web-api – WebApi:如何将状态从过滤器
- asp.net-mvc-3 – ASP.NET MVC 3:当BeginForm在
- 如何在ASP.Net MVC中执行301永久重定向路由
- Asp.Net MVC缺少样式并默认为登录页面
- 为ASP.NET应用程序实现后台服务的最佳方法是什么
- 带有子项的ASP.NET自定义/用户控件
- asp.net – 模型项的类型为CookMeIndexViewModel
- asp.net-mvc – Sql Views的流畅Nhibernate映射
- ASP.NET身份验证 – 多个应用程序的一个登录系统
- 验证 – Asp.Net MVC:子请求的执行失败.请查看I
热点阅读
