【问题标题】:ASP.NET MVC4 redirecting without the context没有上下文的 ASP.NET MVC4 重定向
【发布时间】:2012-08-12 02:25:44
【问题描述】:

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

【问题讨论】:

  • 这已在配置中使用表单身份验证和LoginUrl 处理。请详细解释您的问题。
  • 表单认证?我没有使用任何集成的用户/身份验证系统,我编写了自己的系统。所以不能用那些..?
  • 随意写一些东西并希望它适合框架并不是一种非常有效的技术。

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

    希望对您有所帮助。

    【讨论】:

    • 嗨。有什么帮助吗?谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 2023-04-10
    • 2014-05-18
    • 2014-02-02
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多