我遇到类似这样的问题:
URL authorization failed for the request
IIS File authorization failed for the request
我在IIS 7上运行了几个类似的网站。我正在使用Firefox进行测试,以便我可以充当除我之外的用户。
我一直在网站上完成所有工作1.我可以以网络用户administrator
和sys\bob
身份登录。
我现在正在使用网站2和3.我可以正常登录administrator
。问题是:当我以dom\bob
身份登录时,初始登录已正确验证。在所有后续请求中,dom\bob
因文件或URL身份验证失败而被拒绝。
应用程序事件日志条目与链接问题中引用的内容大致相似,只是自定义事件详细信息部分为空。
我已经检查过IIS管理器中的网站,但到目前为止没有发现任何差异。我已确认web.config
文件是相同的,但连接字符串等特定于站点的信息除外。据我所知,我已经验证了文件夹权限是正确的。
特别是关于权限:
<authentication>
模式在所有网站上均为Windows
。
<authorization>
节点在网站之间特别相同。
本地域在所有情况下都是相同的MS Windows Server 2008虚拟机 - 一个托管多个网站的服务器映像。因此从理论上讲,用户授权在所有网站上应该是相同的。
- 编辑1-- 只是我的运气。我在网站1上弹出了这个授权问题,在一个JavaScript文件中,该文件在sprint审查期间运行得很好。有一种扭曲,在这种情况下,用户在授权失败之前能够经历相当多的页面。
我会尽快发布我的日志。
- 编辑2-- 我在这个问题开始之前不久做了一次环境更改:我更新了jQuery和Bootstrap。
这是packages.config
中的差异:
之前
<package id="AspNet.ScriptManager.bootstrap" version="3.3.5" targetFramework="net45" />
<package id="AspNet.ScriptManager.jQuery" version="2.1.4" targetFramework="net45" />
<package id="bootstrap" version="3.3.5" targetFramework="net45" />
<package id="jQuery" version="2.1.4" targetFramework="net45" />
后
<package id="AspNet.ScriptManager.bootstrap" version="3.3.6" targetFramework="net45" />
<package id="AspNet.ScriptManager.jQuery" version="2.2.3" targetFramework="net45" />
<package id="bootstrap" version="3.3.6" targetFramework="net45" />
<package id="jQuery" version="2.2.3" targetFramework="net45" />
以下是应用程序事件日志中的两个典型条目,已正确清理。
1:
Event code: 4008
Event message: File authorization failed for the request.
Event time: 6/2/2016 2:31:29 PM
Event time (UTC): 6/2/2016 6:31:29 PM
Event ID: e4a0fd65d9e34686967f14429d21ab97
Event sequence: 14
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/21/ROOT-1-131093658656731243
Trust level: Full
Application Virtual Path: /
Application Path: C:\Users\Administrator\Documents\Visual Studio 2013\Projects\HAWK_WebForms\HAWK.Web.LogansRun\
Machine name: BAH01
Process information:
Process ID: 5288
Process name: iisexpress.exe
Account name: HAWK\administrator
Request information:
Request URL: http://localhost:53104/Scripts/jquery-2.2.3.js
Request path: /Scripts/jquery-2.2.3.js
User host address: ::1
User: HAT\john.smith
Is authenticated: True
Authentication Type: NTLM
Thread account name: HAWK\administrator
Custom event details:
2:
Event code: 4008
Event message: File authorization failed for the request.
Event time: 6/2/2016 2:28:51 PM
Event time (UTC): 6/2/2016 6:28:51 PM
Event ID: a43d7292a8894df193600e829e74c696
Event sequence: 14
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/14/ROOT-1-131093657141125131
Trust level: Full
Application Virtual Path: /
Application Path: C:\Users\Administrator\Documents\Visual Studio 2013\Projects\HAWK_WebForms\HAWK.Web.LogansRun\
Machine name: BAH01
Process information:
Process ID: 5248
Process name: iisexpress.exe
Account name: HAWK\administrator
Request information:
Request URL: http://localhost:53752/Scripts/Pages/Admin/SelfRatingWizard.js
Request path: /Scripts/Pages/Admin/SelfRatingWizard.js
User host address: ::1
User: HAWK\james.jones
Is authenticated: True
Authentication Type: NTLM
Thread account name: HAWK\administrator
Custom event details:
- 编辑3 -
我尝试从此答案添加注册表项:https://stackoverflow.com/a/13015279/2615836
它没有改变任何东西。我还仔细检查了身份验证提供程序的顺序。 NTLM已经领先于所有网站的谈判。
- 另一次更新 -
我回滚了Bootstrap和jQuery。令我惊讶的是,文件授权仍然失败!同样,jQuery.js
是一个地方 - 几乎每个文件都会引发此投诉。这就像授权令牌被“遗忘”一样。
- 更新至编辑1--
在网站1中引发问题的JavaScript文件没有Network Service
的权限,就像所有其他JavaScript文件一样。一旦我解决了这个问题,网站1就解决了。唉,此修复程序无法解析网站2。
答案 0 :(得分:0)
当多个因素同时存在时,可能会发生此行为(在不同的浏览器中):
检查此问题是否适用于您的情况。如果是这样,请尝试使用上面列表中的任何其他值来(暂时)克服此问题。
答案 1 :(得分:0)
我最终发现Project1的目录为域组Users提供了读取权限,而其他项目都没有。一旦我授予用户对Project2基本目录的读取权限,就解决了身份验证问题。
因此,这是操作系统级别的用户权限问题。