我正在创建ASP.NET MVC 4 Internet应用程序.在该申请中
我创建了任何用户都可以登录的登录页面,然后我尝试根据用户的角色将用户重定向到不同的页面.
我创建了任何用户都可以登录的登录页面,然后我尝试根据用户的角色将用户重定向到不同的页面.
ASP.NET Identity是这里的成员系统.
在我的AspNetRoles表中,我有两个角色:
Id| Name 1 | HEI_Admin 2 | HEI_User
[HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task<ActionResult> Login(Loginviewmodel model,string returnUrl) { if (ModelState.IsValid) { var user = await UserManager.FindAsync(model.UserName,model.Password); if (user != null) { if (user.ConfirmedEmail == true) { await SignInAsync(user,model.RememberMe); if (String.IsNullOrEmpty(returnUrl)) { if (UserManager.IsInRole(user.Id,"HEC_Admin")) { return RedirectToAction("Index","HEC"); } //role Admin go to Admin page if (UserManager.IsInRole(user.Id,"HEI_User")) { return RedirectToAction("Index","HEI"); } } else { return RedirectToLocal(returnUrl); } } else { ModelState.AddModelError("","Confirm Email Address."); } } else { ModelState.AddModelError("","Invalid username or password."); } } // If we got this far,something Failed,redisplay form return View(model); }
但是当我尝试使用正确的凭据进行记录时,我遇到以下错误:
建立与sql Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及sql Server是否配置为允许远程连接.
所有连接都经过双重检查,如何才能实现这个问题.
解决方法
if (ModelState.IsValid) { var user = await UserManager.FindAsync(model.UserName,model.Password); if (user != null) { await SignInAsync(user,model.RememberMe); if (UserManager.IsInRole(user.Id,"Admin")) { return RedirectToAction("Index","Admin"); } else if (UserManager.IsInRole(user.Id,"Clerk")) { return RedirectToAction("Index","Employee"); } else if (UserManager.IsInRole(user.Id,"Customer")) { return RedirectToAction("Index","Customer"); } //return RedirectToLocal(returnUrl); } else { ModelState.AddModelError("","Invalid username or password"); } } // If we got this far,redisplay form return View(model); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。