SECOND 请求的文件/URL 授权失败
File / URL authorization failed for the SECOND request
我有类似的问题:
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--
只是我的运气。在 sprint 审查期间,我在网站 1 上弹出了这个授权问题,在一个 JavaScript 文件上,该文件具有 运行 之前还不错。有一个转折,在这种情况下,用户能够在授权失败之前浏览相当多的页面。
我会尽快 post 我的日志。
--编辑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--
我尝试从这个答案中添加注册表项:
它没有改变任何东西。我还仔细检查了身份验证提供程序的顺序。 NTLM 已经领先于所有网站的协商。
--另一个更新--
我回滚了 Bootstrap 和 jQuery。令我惊讶的是,文件授权仍然失败!同样,jQuery.js
是一个点——几乎每个文件都会提出这个投诉。就好像授权令牌获得 "forgotten".
--更新到编辑 1--
与所有其他 JavaScript 文件一样,在网站 1 中引发问题的 JavaScript 文件没有 Network Service
的权限。一旦我解决了这个问题,网站 1 就解决了。唉,这个修复没有解决网站 2.
当多个因素同时存在时(在不同的浏览器中)可能会出现此行为:
- Windows 身份验证已启用。 AnonymousAuthentication 已禁用;
- 通过IP地址访问服务器(不是通过别名);
- 第一个 ajax 请求已完成;
- 超时 1 分钟。
检查此问题是否适用于您的情况。如果是这样,请尝试使用上述列表中的任何其他值来(暂时)解决此问题。
我最终发现 Project1 的目录向域组 Users 授予读取权限,而其他项目的 none 也是如此。一旦我授予用户对 Project2 的基本目录的读取权限,身份验证问题就解决了。
所以这是一个 OS 级的用户权限问题。
我有类似的问题:
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-- 只是我的运气。在 sprint 审查期间,我在网站 1 上弹出了这个授权问题,在一个 JavaScript 文件上,该文件具有 运行 之前还不错。有一个转折,在这种情况下,用户能够在授权失败之前浏览相当多的页面。
我会尽快 post 我的日志。
--编辑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--
我尝试从这个答案中添加注册表项:
它没有改变任何东西。我还仔细检查了身份验证提供程序的顺序。 NTLM 已经领先于所有网站的协商。
--另一个更新--
我回滚了 Bootstrap 和 jQuery。令我惊讶的是,文件授权仍然失败!同样,jQuery.js
是一个点——几乎每个文件都会提出这个投诉。就好像授权令牌获得 "forgotten".
--更新到编辑 1--
与所有其他 JavaScript 文件一样,在网站 1 中引发问题的 JavaScript 文件没有 Network Service
的权限。一旦我解决了这个问题,网站 1 就解决了。唉,这个修复没有解决网站 2.
当多个因素同时存在时(在不同的浏览器中)可能会出现此行为:
- Windows 身份验证已启用。 AnonymousAuthentication 已禁用;
- 通过IP地址访问服务器(不是通过别名);
- 第一个 ajax 请求已完成;
- 超时 1 分钟。
检查此问题是否适用于您的情况。如果是这样,请尝试使用上述列表中的任何其他值来(暂时)解决此问题。
我最终发现 Project1 的目录向域组 Users 授予读取权限,而其他项目的 none 也是如此。一旦我授予用户对 Project2 的基本目录的读取权限,身份验证问题就解决了。
所以这是一个 OS 级的用户权限问题。