使用带有自定义角色提供程序的asp.net mvc 4登录失败时,错误消息
发布时间:2020-12-16 06:48:31 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试实现自定义角色提供程序,我找到了一个教程并遵循它. 这是链接: http://techbrij.com/custom-roleprovider-authorization-asp-net-mvc 当我尝试使用不存在的用户帐户登录时,不会显示错误消息.这是我目前的代码. 这是登录的代码: [HttpPost] [Allo
我正在尝试实现自定义角色提供程序,我找到了一个教程并遵循它.
这是链接: http://techbrij.com/custom-roleprovider-authorization-asp-net-mvc 当我尝试使用不存在的用户帐户登录时,不会显示错误消息.这是我目前的代码. 这是登录的代码: [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Login(LoginModel model,string returnUrl) { if (ModelState.IsValid) { using (SampleDBEntities objContext = new SampleDBEntities()) { var objUser = objContext.Users.FirstOrDefault(x => x.AppUserName == model.UserName && x.Password == model.Password); if (objUser == null) { ModelState.AddModelError("LogOnError","The user name or password provided is incorrect."); } else { FormsAuthentication.SetAuthCookie(model.UserName,model.RememberMe); if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/")) { ModelState.AddModelError("LogOnError","The user name or password provided is incorrect."); return Redirect(returnUrl); } else { //Redirect to default page //return RedirectToAction("RedirectToDefault"); return RedirectToAction("Index","Home"); } } } } // If we got this far,something failed,redisplay form return View(model); } 以下是提供程序实现的代码: public class MyRoleProvider : RoleProvider { public override void AddUsersToRoles(string[] usernames,string[] roleNames) { throw new NotImplementedException(); } public override string ApplicationName { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } public override void CreateRole(string roleName) { throw new NotImplementedException(); } public override bool DeleteRole(string roleName,bool throwOnPopulatedRole) { throw new NotImplementedException(); } public override string[] FindUsersInRole(string roleName,string usernameToMatch) { throw new NotImplementedException(); } public override string[] GetAllRoles() { throw new NotImplementedException(); } public override string[] GetRolesForUser(string username) { using (SampleDBEntities objContext = new SampleDBEntities()) { var objUser = objContext.Users.FirstOrDefault(x => x.AppUserName == username); if (objUser == null) { return null; } else { string[] ret = objUser.Roles.Select(x => x.RoleName).ToArray(); return ret; } } } public override string[] GetUsersInRole(string roleName) { throw new NotImplementedException(); } public override bool IsUserInRole(string username,string roleName) { throw new NotImplementedException(); } public override void RemoveUsersFromRoles(string[] usernames,string[] roleNames) { throw new NotImplementedException(); } public override bool RoleExists(string roleName) { throw new NotImplementedException(); } } } 先生/女士,你的答案会有很大的帮助.谢谢 解决方法
您已在ModelState的“LogOnError”键下添加了错误:
ModelState.AddModelError("LogOnError","The user name or password provided is incorrect."); 只有在视图中有相应的Html.ValidationMessage帮助程序时,才会出现此错误: @Html.ValidationMessage("LogOnError") 如果您希望错误出现在Html.ValidationSummary()帮助器中,请使用空白键: ModelState.AddModelError("","The user name or password provided is incorrect."); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET Dropdownlist selectedindexchanged事件未在向上/向
- 如何在ASP.NET MVC4项目之间共享HTML
- asp.net – IIS 7禁用“需要SSL”
- asp.net-mvc-4 – MVC4:什么实体代表表webpages_Membershi
- asp.net – ASP核心:如何设置httpContext.User?
- asp.net – 在部署时编译ASCX文件而不是首次加载?
- asp.net – 使用SignalR编译项目时,我必须做一个iisreset
- asp.net-mvc-4 – 无法让ASP.NET 4 Web API返回状态代码“2
- ASP.NET:在代码中验证用户
- 新版本 swagger 组件中 Servers 的 坑