Dan*_*ell 43 asp.net-mvc forms-authentication http-status-code-302
我在登录页面,css文件和js文件中有一些包含.
<link rel="stylesheet" type="text/css" href="../../ext/resources/css/ext-all.css" />
<script type="text/javascript" src="../../ext/bootstrap.js"></script>
Run Code Online (Sandbox Code Playgroud)
不幸的是,浏览器为这些请求获得了302响应.Forms Auth将请求视为未经授权并将其重定向到登录页面.它没有意识到请求首先来自登录页面.
GET http://localhost:50880/ext/resources/css/ext-all.css HTTP/1.1
HTTP/1.1 302 Found
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/Account/LogOn?ReturnUrl=%2fext%2fresources%2fcss%2fext-all.css">here</a>.</h2>
</body></html>
Run Code Online (Sandbox Code Playgroud)
我想也许设置包含文件夹(ext)的权限可能对每个人都有帮助.
我在其他项目中没有遇到过这个问题.
Dav*_*isk 72
我有同样的问题.这是我解决它的方式.
在IIS7中,单击您的网站,然后双击"身份验证"按钮.单击"匿名身份验证",然后单击右侧的"编辑..."链接.确保选中"应用程序池标识"复选框.
我的应用程序池在"网络服务"用户下运行(而不是"ApplicationPoolIdentity").您可以在IIS中的应用程序池的"高级设置"中选择"标识".该用户已获得对该网站文件系统的完全访问权限.
PSK*_*PSK 30
您需要在配置文件中排除css文件和图像以进行身份验证.使用位置标记可以排除单个文件或目录.
<location path="<RELATIVE_PATH_OF_YOUR_RESOURCE_FILES>">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
所以,这就是我所做的,完全解决了这个问题.
首先,我像其他人所说的那样对web.config进行了更改.
我在IIS中使用匿名身份验证,并且如本期所述,我进入了IIS>应用程序池>右键单击我的应用程序池>编辑>更改了应用程序池以使用应用程序池标识.
那么 - 我去了包含我的网站的父文件夹,进入该文件夹的权限,并添加了服务器的NETWORK SERVICE帐户来访问该文件夹.这样做对我来说.这是因为Application Pool在ApplicationPoolIdentity下运行,ApplicationPoolIdentity是本地计算机上的NETWORK SERVICE帐户.
希望这有助于某人!
我在这方面遇到的问题是我从互联网上下载了一个jquery插件并将其复制到我在web服务器上的内容目录中,而Windows下的所有文件都被阻止,以至于网络服务器无法正常访问它们.在Windows中取消阻止文件解决了这个问题.
| 归档时间: |
|
| 查看次数: |
23874 次 |
| 最近记录: |