【问题标题】:ASP.NET MVC 3 error when using forms authentication使用表单身份验证时出现 ASP.NET MVC 3 错误
【发布时间】:2011-08-25 02:28:10
【问题描述】:

我正在为我的 MVC 3 应用程序使用表单身份验证。我在配置中添加了这一行:

<authorization>
<allow roles="Administrator"/>
<deny users="*"/>
</authorization>

当我(在我的本地机器上)运行应用程序时,我收到下面列出的错误,并且没有任何 CSS 样式通过。但是当我登录时,一切看起来都很好。所以我想我有几个问题:

  1. 最佳实践是在 web.config 中添加授权规则,还是应该将其添加到控制器内的 [Authorize] 属性中。
  2. 当我在 web.config 中添加授权规则时,我只收到下面列出的错误。我错过了什么?

我们将不胜感激。谢谢你。

附言我使用的是 Internet Explorer 8

网页错误详情

用户代理:Mozilla/4.0(兼容; MSIE 8.0;视窗 NT 5.1;三叉戟/4.0; GTB6.5; .NET CLR 2.0.50727; InfoPath.2; .NET4.0C; .NET4.0E; 。网 CLR 3.0.4506.2152; .NET CLR 3.5.30729) 时间戳:2011 年 5 月 13 日星期五 15:48:19 世界标准时间

消息:语法错误行:1 字符:1 代码:0 URI: http://localhost:1361/Account/LogOn?ReturnUrl=%2fScripts%2fjquery-1.4.4.min.js

消息:语法错误行:1 字符:1 代码:0 URI: http://localhost:1361/Account/LogOn?ReturnUrl=%2fScripts%2fjquery.validate.min.js

消息:语法错误行:1 字符:1 代码:0 URI: http://localhost:1361/Account/LogOn?ReturnUrl=%2fScripts%2fjquery.validate.unobtrusive.min.js

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-3 forms-authentication


    【解决方案1】:

    在您的 web.config 中,您在所有情况下都将访问权限限制为除管理员之外的所有人。查看此链接,为您提供更多关于您可以执行的操作的选项。 (比如允许访问特定文件夹)

    http://weblogs.asp.net/gurusarkar/archive/2008/09/29/setting-authorization-rules-for-a-particular-page-or-folder-in-web-config.aspx

    【讨论】:

    • 谢谢。该链接对于表单身份验证非常有价值。
    【解决方案2】:

    问题在于,您似乎已经猜到,CSS 文件受您的授权规则保护。应用 web.config 中的规则和通过 Authorize 属性应用规则之间存在差异的原因是,由于 MVC 框架不会通过控制器发送对存在于磁盘上的文件的请求,因此对 CSS 文件的请求(其中存在于光盘上)永远看不到该属性。但是,他们确实可以看到 web.config 中的授权规则。

    有几种方法可以解决这个问题。任何一个都可以正常工作。

    1. 使用&lt;location&gt; 标签允许任何用户请求您的 CSS 文件。
    2. 跳过web.config 中的授权并改用Authorize 属性。如果您这样做,您可以在global.asax.csapply the attribute globally,这样您就不必记住在每个控制器上都这样做了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      相关资源
      最近更新 更多