一旦用户登录我使用表单身份验证的网站,我该如何阻止用户登录&注册页面,如果他已经登录&注册
答案 0 :(得分:5)
简单的方法是检查控制器方法(登录/注册),如果用户已通过身份验证,并且是否将用户重定向到您想要的页面:
登录页面的内容(与Register相同):
//
// GET: /Login/Index
public ActionResult Index()
{
if(User.Identity.IsAuthenticated){
//redirect to some other page
return RedirectToRoute("Home", "Index");
}
return View();
}
答案 1 :(得分:5)
两种方式“脱离我的头脑”:
1 - 自定义Action Filter
,如果用户已登录,则会将用户从页面重定向。
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);
}
}
2 - 如果用户已登录,请简单检查login
操作方法。
if(Request.IsAuthenticated) return RedirectToAction("SomeOtherView");
答案 2 :(得分:0)
您可以检查User.Identity.IsAuthenticated属性并适当地重定向它们。