【问题标题】:MVC 5 - authorisation blues with forms authenticationMVC 5 - 带有表单身份验证的授权蓝调
【发布时间】:2015-06-08 18:59:21
【问题描述】:

对于 WebForms,我在表单身份验证方面没有问题,但它在 MVC 5 中让我很痛苦

Secure添加到区域,然后登陆和登录

在主 web.config 文件中在 system.web 下添加了这个(也有类似~/Secure/Login 的变体)

 <authentication mode="Forms">
  <forms loginUrl="Secure/Login" />
</authentication> 

和子 web.config 文件(在安全下)这个(抱歉缩进不起作用所以使用代码 sn-p)

<location path="">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>
  <location path="Login">
    <system.web>
      <authorization>
        <allow users="?"/>
      </authorization>
    </system.web>
  </location>​

但由于某种原因它不起作用。

【问题讨论】:

  • Microsoft 的官方回应是您无法通过 web.config 保护 MVC 应用程序。您必须授权属性或其他 AuthenticationFilters。 weblogs.asp.net/jongalloway/…
  • 我更关心找到重定向到登录页面的方法 - 我可以在控制器的类上方添加 但我不希望用户点击401.0
  • 如果您从配置中删除授权部分,并按照我参考的文章中的建议,您不会有问题。
  • 埃里克 - 感谢您的链接。实际问题是 Startup.Auth。现在添加路径会将 发送到登录页面。我注意到(从您的链接)我可以从帐户控制器配置 - 问题 - 这应该从主要的完成,还是我应该在该区域下为该区域创建另一个?感谢您的回复
  • 您使用 AllowAnonymous 属性来覆盖全局过滤器中的 Authorize 属性,这在我链接的文章中有记录

标签: asp.net-mvc forms-authentication


【解决方案1】:

将此添加到 Startup.Auth 并完美运行

app.UseCookieAuthentication(New CookieAuthenticationOptions() With {.LoginPath = New PathString("/Secure/Login")})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    相关资源
    最近更新 更多