没有上下文的ASP.NET MVC4重定向

时间:2012-08-12 02:25:45

标签: asp.net asp.net-mvc asp.net-mvc-4

我有一个方法IsUserLoggedIn(),如果用户没有登录,我希望它将用户重定向到Login页面(如果会话已过期,则为I.E)。问题是我没有filterContext而且它不在Controller中,所以如何重定向,我真的不想传递任何更多的参数,比如控制器实例或其他东西。有可能吗?

2 个答案:

答案 0 :(得分:1)

在ASP.NET MVC中执行此操作的标准方法是使用操作筛选器来执行检查,并在用户未登录时重定向用户.AntocizeAttribute的默认实现将重定向到指定的authentication / forms / loginUrl在web.config中,您始终可以实现从默认AuthorizeAttribute派生的自己的属性,并重定向到您想要的任何位置。

http://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute.aspx

答案 1 :(得分:0)

如果您遵循框架的约定和标准,请使用以下命令: 无论您在何处,您都应该注意以下问题。在你的web.config中必须有一个部分:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

根据定义,将其重定向到登录页面和超时(以分钟为单位),直到cookie过期。有关身份验证here的更多信息。

但是如果你有自己的系统,那么你在这里找不到任何帮助,因为没有人知道它,但你自己。 :)

希望得到这个帮助。