Asp.net MVC自定义角色提供程序重定向到登录页面
您好,我正在使用一个自定义角色提供程序,如果用户拥有允许他们进入的权限,那么所有这些都可以正常工作,如果没有权限,则会重定向到登录页面 但我想知道的是,当他们被重定向到登录页面时,登录页面中是否有一种方法可以设置一条消息,说访问被拒绝或其他什么。 例如,我想要下面的内容,User.FailedCustomRole?我不确定这样的东西是否存在于某个物体中:Asp.net MVC自定义角色提供程序重定向到登录页面,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,您好,我正在使用一个自定义角色提供程序,如果用户拥有允许他们进入的权限,那么所有这些都可以正常工作,如果没有权限,则会重定向到登录页面 但我想知道的是,当他们被重定向到登录页面时,登录页面中是否有一种方法可以设置一条消息,说访问被拒绝或其他什么。 例如,我想要下面的内容,User.FailedCustomRole?我不确定这样的东西是否存在于某个物体中: [AllowAnonymous] public ActionResult Login() { if (
[AllowAnonymous]
public ActionResult Login()
{
if (User.FailedCustomRole) {
ViewBag.Message = "No access to this page";
}
return View();
}
谢谢- 一种方法是修改web.config,将用户重定向到参数为1的登录页
public ActionResult LogOn(int? id)
{
//int id = Request.QueryString[;
if (id != null)
{
LogOnModel model = new LogOnModel();
ModelState.AddModelError("", "Please Login to use this page");
return View(model);
}
- 第二种方法是创建一个操作筛选器,用于检查登录并重定向Viewbag.LoginError设置
在登录页面中添加一个div,其中显示public class CheckLoginFilterAttribute : ActionFilterAttribute { public override void onactionexecuting(ActionExecutedContext filterContext) { if (Membership.GetUser() != null) { Viewbag.LoginError = "Please Login to use this page"; filterContext.Result = new RedirectToRouteResult( new System.Web.Routing.RouteValueDictionary { {"controller", "Account"}, {"action", "Logon"} } { } base.OnActionExecuted(filterContext); }
。如果没有人口,这将变成空白@(Viewbag.LoginError)
- 第三种方法是创建自定义授权筛选器,该筛选器重定向并设置V@(ViewData[“LoginError”]中的错误消息
@(ViewData[“LoginError”]
。如果未填充,则该div将显示为空
注意我对最后一种方法最不确定或最不舒服