ASP.Net Web 表单应用程序未在服务器上通过 Windows 身份验证进行身份验证 - 模拟失败
ASP.Net Web Forms App does not authenticate on server with Windows Authentication - fails impersonate
我正在 运行 宁 ASP.NET (VB) 4.6.1 Web 表单应用程序。我正在使用 Windows 身份验证 ( <authentication mode="Windows" />
).
该方案是允许任何经过身份验证的 Windows 用户访问登录页面。 “Check Admins”活动目录安全组中的任何用户都应该可以访问 Admin 子文件夹中的任何页面。
根 web.config 有:
<authorization>
<deny users="?" />
</authorization>
管理员 web.config 有:
<authorization>
<allow roles="domain\Check Admins" />
<deny users="*" />
</authorization>
在着陆页上,我列举了用户拥有的所有角色:
test &= "<br/><h3>You have the following roles:</h3>"
For Each r In Roles.GetRolesForUser()
test &= r & "<br/>"
Next
我经历了几次设置和 web.config 更改(大部分概述如下)。我可以让它在我的开发 PC 上按预期工作,但在部署到测试服务器 运行ning Windows 2008 R2 和 IIS 7.5 时无法让它工作。有时我可以让网站出现,但前提是我去 http://localhost。当我使用完全限定名称时它不会出现:http:// test.mysite.net
以下是我尝试过的更改和设置:
当 运行ning 没有模拟时:
开发机器:
- User.Identity.Name: domain\me
- Principal.WindowsIdentity.GetCurrent.Name: domain\me
- 着陆页:运行
- 管理页面:运行
- 枚举角色:除管理员角色外,所有角色都是我的
一切正常。
部署到带有 IIS 设置的服务器时
IIS 7.5 服务器(http://localhost):
- User.Identity.Name: domain\me
- Principal.WindowsIdentity.GetCurrent.Name: IIS APPPOOL\Test.mysite.net
- 着陆页:运行
- 管理页面:运行
- 枚举角色:显示 IIS APPPOOL\Test.mysite.net
的角色(大概)
IIS 7.5 服务器(FQDN:http://Test.mysite.net):
永无止境的安全挑战
正在更改服务器上的 IIS 设置
两个服务器站点return
HTTP 错误 500.24 - 内部服务器错误
检测到 ASP.NET 设置不适用于集成托管管道模式。
在开发机器上添加 <identity impersonate="true"/>
:
HTTP 错误 500.24 - 内部服务器错误
检测到 ASP.NET 设置不适用于集成托管管道模式。
最可能的原因:
• system.web/identity@impersonate 设置为 true.
添加
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
</system.webServer>
上面的模拟给出:
开发机:(与第一个运行相同)
- User.Identity.Name: domain\me
- Principal.WindowsIdentity.GetCurrent.Name: domain\me
- 着陆页:运行
- 管理页面:运行
- 枚举角色:除管理员角色外,所有角色都是我的
IIS 7.5 服务器(本地主机):
- User.Identity.Name: domain\me
- Principal.WindowsIdentity.GetCurrent.Name: domain\me
- 着陆页:运行
- 管理页面:永无休止的安全挑战
- 枚举角色:显示 IIS APPPOOL\Test.mysite.net
的角色(大概)
IIS 7.5 服务器(FQDN:http://Test.mysite.net):
永无止境的安全挑战
我花了几个小时梳理这里和 Google 上其他地方的帖子。我不知道这是 .Net 4.5+ 的问题还是我只是错过了什么。我怎样才能让它正确读取角色并对文件夹进行身份验证?
为什么当我尝试使用完整 URL 访问页面时,它是否完全无法通过身份验证?
对于其中的 90%,事实证明 Active Directory 服务器的证书已过期,因此拒绝对来自 Web 服务器的请求进行身份验证。奇怪的是,它确实验证了登录 PC 上 Windows 帐户的所有用户。我发布这个以防其他人遇到类似的问题。
虽然,我仍然无法弄清楚为什么在服务器本身上,导航到完整 URL 仍然无法进行身份验证,但是转到 Localhost 就可以正常工作。
我正在 运行 宁 ASP.NET (VB) 4.6.1 Web 表单应用程序。我正在使用 Windows 身份验证 ( <authentication mode="Windows" />
).
该方案是允许任何经过身份验证的 Windows 用户访问登录页面。 “Check Admins”活动目录安全组中的任何用户都应该可以访问 Admin 子文件夹中的任何页面。
根 web.config 有:
<authorization>
<deny users="?" />
</authorization>
管理员 web.config 有:
<authorization>
<allow roles="domain\Check Admins" />
<deny users="*" />
</authorization>
在着陆页上,我列举了用户拥有的所有角色:
test &= "<br/><h3>You have the following roles:</h3>"
For Each r In Roles.GetRolesForUser()
test &= r & "<br/>"
Next
我经历了几次设置和 web.config 更改(大部分概述如下)。我可以让它在我的开发 PC 上按预期工作,但在部署到测试服务器 运行ning Windows 2008 R2 和 IIS 7.5 时无法让它工作。有时我可以让网站出现,但前提是我去 http://localhost。当我使用完全限定名称时它不会出现:http:// test.mysite.net
以下是我尝试过的更改和设置:
当 运行ning 没有模拟时:
开发机器:
- User.Identity.Name: domain\me
- Principal.WindowsIdentity.GetCurrent.Name: domain\me
- 着陆页:运行
- 管理页面:运行
- 枚举角色:除管理员角色外,所有角色都是我的
一切正常。
部署到带有 IIS 设置的服务器时
IIS 7.5 服务器(http://localhost):
- User.Identity.Name: domain\me
- Principal.WindowsIdentity.GetCurrent.Name: IIS APPPOOL\Test.mysite.net
- 着陆页:运行
- 管理页面:运行
- 枚举角色:显示 IIS APPPOOL\Test.mysite.net 的角色(大概)
IIS 7.5 服务器(FQDN:http://Test.mysite.net): 永无止境的安全挑战
正在更改服务器上的 IIS 设置
两个服务器站点return HTTP 错误 500.24 - 内部服务器错误 检测到 ASP.NET 设置不适用于集成托管管道模式。
在开发机器上添加 <identity impersonate="true"/>
:
HTTP 错误 500.24 - 内部服务器错误 检测到 ASP.NET 设置不适用于集成托管管道模式。
最可能的原因: • system.web/identity@impersonate 设置为 true.
添加
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
</system.webServer>
上面的模拟给出:
开发机:(与第一个运行相同)
- User.Identity.Name: domain\me
- Principal.WindowsIdentity.GetCurrent.Name: domain\me
- 着陆页:运行
- 管理页面:运行
- 枚举角色:除管理员角色外,所有角色都是我的
IIS 7.5 服务器(本地主机):
- User.Identity.Name: domain\me
- Principal.WindowsIdentity.GetCurrent.Name: domain\me
- 着陆页:运行
- 管理页面:永无休止的安全挑战
- 枚举角色:显示 IIS APPPOOL\Test.mysite.net 的角色(大概)
IIS 7.5 服务器(FQDN:http://Test.mysite.net): 永无止境的安全挑战
我花了几个小时梳理这里和 Google 上其他地方的帖子。我不知道这是 .Net 4.5+ 的问题还是我只是错过了什么。我怎样才能让它正确读取角色并对文件夹进行身份验证?
为什么当我尝试使用完整 URL 访问页面时,它是否完全无法通过身份验证?
对于其中的 90%,事实证明 Active Directory 服务器的证书已过期,因此拒绝对来自 Web 服务器的请求进行身份验证。奇怪的是,它确实验证了登录 PC 上 Windows 帐户的所有用户。我发布这个以防其他人遇到类似的问题。 虽然,我仍然无法弄清楚为什么在服务器本身上,导航到完整 URL 仍然无法进行身份验证,但是转到 Localhost 就可以正常工作。