我有一个方法IsUserLoggedIn(),如果用户没有登录,我希望它将用户重定向到Login页面(如果会话已过期,则为I.E)。问题是我没有filterContext而且它不在Controller中,所以如何重定向,我真的不想传递任何更多的参数,比如控制器实例或其他东西。有可能吗?
答案 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的更多信息。
但是如果你有自己的系统,那么你在这里找不到任何帮助,因为没有人知道它,但你自己。 :)
希望得到这个帮助。