繁体   English   中英

使用表单身份验证时ASP.NET MVC 3错误

[英]ASP.NET MVC 3 error when using forms authentication

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

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

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

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

帮助将不胜感激。 谢谢。

ps我正在使用Internet Explorer 8

网页错误详细信息

用户代理:Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 5.1; Trident / 4.0; GTB6.5; .NET CLR 2.0.50727; InfoPath.2; .NET4.0C; .NET4.0E; .NET CLR 3.0。 4506.2152; .NET CLR 3.5.30729)时间戳:UTC,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

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

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

就像您似乎已经猜到的那样,问题是CSS文件受您的授权规则保护。 web.config应用规则与通过Authorize属性应用之间有所不同的原因是,由于MVC框架不会通过控制器发送对磁盘上存在的文件的请求,因此对CSS文件(位于光盘)永远看不到该属性。 但是,它们确实在web.config看到了授权规则。

有两种方法可以解决此问题。 任何一种都可以正常工作。

  1. 使用<location>标记允许任何用户请求您的CSS文件。
  2. 跳过web.configAuthorize而是使用Authorize属性。 如果执行此操作,则可以在global.asax.cs 全局应用该属性 ,这样您就不必记住在每个控制器上都使用它了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM