AJ.*_*AJ. 7 asp.net authentication iis-6 web-services
我有一个ASP.NET 3.5 Web服务(旧学校SOAP,而不是WCF)在IIS 6.0中设置相同的两台服务器上运行.身份验证/访问控制设置如下:
在其中一个Web方法中,我需要获取请求用户的身份并验证它是否在某个Active Directory组中.所以,web方法中的第一行代码是这样的:
var requestUser = HttpContext.Current.Request.LogonUserIdentity.Name;
Run Code Online (Sandbox Code Playgroud)
由于某种原因,两台服务器之间的结果不同.Server1按预期工作,生成domain\UserId.但是,Server2生成Server2\IUSR_SERVER2.有谁之前经历过这个吗?我确实找到了这个问题,但我很确定它不适用于客户端,两个服务器都在同一个域中.
根据Heinzi的回复,我在以下<system.web>两个web.config文件中添加了以下内容:
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
现在,Server1的行为相同,因为它的行为与我想要的一样.但是,Server2抛出401.2:Unauthorized错误:
'/'应用程序中的服务器错误.
访问被拒绝.描述:访问提供此请求所需的资源时发生错误.可能未配置服务器以访问请求的URL.
错误消息401.2.:未授权:由于服务器配置登录失败.验证您是否有权根据您提供的凭据和Web服务器上启用的身份验证方法查看此目录或页面.请与Web服务器的管理员联系以获取其他帮助.
版本信息:Microsoft .NET Framework版本:2.0.50727.3603; ASP.NET版本:2.0.50727.3053
小智 9
我正在创建一个新的MVC 4 ASP.NET Web应用程序,当我第一次尝试构建我的项目时遇到与您完全相同的错误(错误401.2).
我在我的开发机器上更改了IIS管理器中的选项以禁用匿名身份验证并启用Windows身份验证,但我仍然收到401.2错误.
我做了一些研究,发现我可以更改项目的属性并解决此错误.
Solution Explorer:
- 选择您的项目
- 按F4显示属性窗口
属性窗口:
- 将"匿名身份验证"更改为"已禁用"
- 将"Windows身份验证"更改为"已启用"
如果它不能解决您的具体问题,我希望这可以帮助其他人.只要您在Web服务器上具有相同的设置,它就应该按预期工作.
| 归档时间: |
|
| 查看次数: |
13374 次 |
| 最近记录: |