Asp.net mvc 如何阻止用户登录/注册&;MVC3应用程序上的其他未经验证的页面?
一旦用户登录到我使用表单身份验证的网站,那么如果用户已准备好登录和注册,我如何阻止用户进入登录和注册页面。简单的解决方法是检查控制器方法(登录/注册),如果用户已通过身份验证,并且已将用户重定向到您想要的页面: 类似于登录页面的内容(与Register相同):Asp.net mvc 如何阻止用户登录/注册&;MVC3应用程序上的其他未经验证的页面?,asp.net-mvc,asp.net-mvc-3,authentication,c#-4.0,login,Asp.net Mvc,Asp.net Mvc 3,Authentication,C# 4.0,Login,一旦用户登录到我使用表单身份验证的网站,那么如果用户已准备好登录和注册,我如何阻止用户进入登录和注册页面。简单的解决方法是检查控制器方法(登录/注册),如果用户已通过身份验证,并且已将用户重定向到您想要的页面: 类似于登录页面的内容(与Register相同): 您可以检查User.Identity.IsAuthenticated属性并适当地重定向它们。有两种方法可以“从我的头上跳下来”: 1-自定义操作过滤器,用于在用户登录时从页面重定向用户 public class RedirectAuthe
您可以检查User.Identity.IsAuthenticated属性并适当地重定向它们。有两种方法可以“从我的头上跳下来”: 1-自定义
操作过滤器
,用于在用户登录时从页面重定向用户
public class RedirectAuthenticatedRequests : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if(filterContext.HttpContext.Request.IsAuthenticated) {
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary(new {
controller = "SomeController",
action = "SomeAction"
}
));
}
base.OnActionExecuting(filterContext);
}
}
if(Request.IsAuthenticated) return RedirectToAction("SomeOtherView");
2-如果用户已登录,只需在login
操作方法中进行简单检查
public class RedirectAuthenticatedRequests : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if(filterContext.HttpContext.Request.IsAuthenticated) {
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary(new {
controller = "SomeController",
action = "SomeAction"
}
));
}
base.OnActionExecuting(filterContext);
}
}
if(Request.IsAuthenticated) return RedirectToAction("SomeOtherView");
我确实会创建一个[AuthorizeAttribute]派生属性。@Rhapsody你能解释一下获得该属性的步骤吗?@Xander你是说Global.aspx上的ActionFilter吗?@updev否,我的意思是创建一个
ActionFilterAttribute
来装饰您的登录
ActionMethod
。@updev创建一个不同的属性,如果请求id经过身份验证,它只会重定向。。。