IIS7上的ASP.NET身份验证问题 – 对于Windows身份验证,User.Identity.Name为空
|
我们在ASP.NET 4.0上使用MVC 3使用 Windows身份验证的ASP.NET应用程序. 从Visual Studio 2010运行时,一切都按预期工作,但当推出到IIS7时,Windows登录用户永远不会被填充(检查User.Identity.Name).也没有出现用户凭据的对话框提示. web.config设置: <authentication mode="Windows" /> 在IIS中,我可以看到启用了Windows身份验证,Anonymous也是如此(禁用Anonymous导致403 Forbidden并且没有显示任何内容). 我已尝试启用和禁用“内核模式身份验证”(useKernelMode =“true”),但这似乎没有任何区别.虽然我确实记得我们必须在不同服务器上的另一个站点上禁用此设置,以使身份验证正常工作(可能指向堆栈中的潜在问题?). 如果它有用,来自IIS的applicationHost.config: <security>
<authentication>
<anonymousAuthentication enabled="true" />
<digestAuthentication enabled="false" />
<basicAuthentication enabled="false" />
<windowsAuthentication enabled="true" useKernelMode="false">
<providers>
<clear />
<add value="NTLM" />
</providers>
</windowsAuthentication>
</authentication>
</security>
任何想法可能是什么问题? 在此先感谢您的任何建议. 更新1 我设法找到另一个IIS7服务器进行测试,我发现如果我禁用匿名访问一切按预期工作.但是,即使我禁用匿名访问,我仍然在原始IIS7服务器上存在问题(我现在禁用匿名).所以我认为必须在堆栈中进一步存在一些问题.有任何想法吗?我需要修理的东西,因为它会不断弹出并咬我们想象. 更新2 如果我在问题IIS7框上启用摘要式身份验证,那么我将面临登录提示对话框的挑战,如果我提供合适的凭据,一切都按预期工作.但作为一个内部网络应用程序,用户已经登录到域,我们真的不想以这种方式挑战他们.凭据应该透明地传递,因为它在第二个IIS7框上工作. 更新3 一些进展……我发现如果Web应用程序位于根目录而不是子站点,那么直接编辑IIS7的applicationHost.config文件以提供以下身份验证设置,可以使站点按预期工作: <authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true">
<providers>
<clear />
<add value="NTLM" />
</providers>
</windowsAuthentication>
<digestAuthentication enabled="false" />
</authentication>
使用IIS7的UI配置身份验证并不能提供正确的结果.在病房之后缺少身份验证项目(因为我猜IIS7假定它们被继承)或者它们的设置错误(windowsAuthentication似乎需要上面的提供程序配置才能正常工作). 不幸的是,有问题的Web应用程序实际上是一个子应用程序,因为它有一个内部版本(使用Windows身份验证> www.site.com/internal)和外部版本(使用表单身份验证> www.site.com/external).我仍然无法将身份验证作为子应用程序工作.我只得到一个“错误代码:403 Forbidden”. 解决方法在这种情况下,它是Microsoft ISA Server问题.似乎请求正在通过ISA内部路由到Windows Authenticated站点,一旦ISA被删除,问题就消失了.我不太了解ISA以及它如何路由请求,但我认为它必须从请求中删除一些重要信息,因为某些规则会有人配置. 作为附注,如果它有助于诊断类似的设置:网络管理员告诉我内部流量没有通过ISA路由,但内部ping网站显示ISA实际上在播放. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Asp.net Images随机提供401个未经授权的错误
- asp.net – 角色提供程序是否按请求缓存?
- asp.net-mvc – ASP.net MVC 4 WebApi中的嵌套资源
- asp.net-mvc-3 – 当使用Html.TextBoxFor时,将模型的名称添
- 单元测试 – 使用MOQ对象进行ASP.NET MVC单元测试
- asp.net – 获取客户端隐藏字段的值
- 在mvc4 asp.net中的Razor View中的模型声明
- asp.net-mvc – 在空项目中缺少类型Mono.Web.Util.RoleMana
- asp.net – 如何在运行时设置ObjectDataSource选择参数
- 用于XmlHttpRequest的WebAPI的CORS
- 实体框架 – 使用EF和WebAPI,如何返回一个ViewMo
- asp.net-mvc – ASP.NET MVC:从控制器返回CDN图
- asp.net-mvc – ASP.NET MVC切换语言,如何实现?
- ASP.NET从内存而不是从文件中流内容
- asp.net – SQL – 两个不同长度的字符串之间的相
- .net – SignalR – connection.hubName未定义
- asp.net – Response.Redirect和线程被中止错误?
- asp.net-mvc-3 – 如何正确使用RedirectToAction
- asp.net-mvc – OpenID Connect的OWIN中间件 –
- 处理用户在ASP.NET MVC网站中点击“Enter”键
