[英]ASP.NET MVC 3 error when using forms authentication
我正在为MVC 3应用程序使用表单身份验证。 我在配置中添加了以下行:
<authorization>
<allow roles="Administrator"/>
<deny users="*"/>
</authorization>
当我运行应用程序(在我的本地机器上)时,出现以下错误,并且CSS样式均未通过。 但是,当我登录时,一切看起来都很好。 所以我想我有几个问题:
帮助将不胜感激。 谢谢。
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中,在所有情况下,您都将限制除管理员之外的所有人访问。 查看此链接可为您提供更多选择。 (例如允许访问特定的文件夹)
就像您似乎已经猜到的那样,问题是CSS文件受您的授权规则保护。 在web.config
应用规则与通过Authorize
属性应用之间有所不同的原因是,由于MVC框架不会通过控制器发送对磁盘上存在的文件的请求,因此对CSS文件(位于光盘)永远看不到该属性。 但是,它们确实在web.config
看到了授权规则。
有两种方法可以解决此问题。 任何一种都可以正常工作。
<location>
标记允许任何用户请求您的CSS文件。 web.config
的Authorize
而是使用Authorize
属性。 如果执行此操作,则可以在global.asax.cs
全局应用该属性 ,这样您就不必记住在每个控制器上都使用它了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.