1

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

4

2 回答 2

1

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

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

于 2012-08-12T16:13:04.657 回答
0

如果您遵循框架的约定和标准,请使用:无论您在上下文中的哪个位置,以下内容都应该解决您的问题。在您的 web.config 中必须有一个部分:

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

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

但是,如果您有自己的系统,您将不会在这里找到任何帮助,因为除了您自己之外,没有人对此一无所知。:)

希望这有帮助。

于 2012-08-12T16:05:39.103 回答