我有一个使用 Windows 身份验证的 asp.net 内部网应用程序。我几年前使用 VS 2005 创建了该应用程序,并且 Windows 身份验证位运行良好。我的 web.config 具有以下内容(内部配置 -> system.web 元素):
<authentication mode="Windows" />
<authorization>
<deny users="?"/>
</authorization>
我在 Firefox 中对此进行了测试以确认是否需要凭据,并且确实在第一次访问该站点时提示我输入我的网络凭据,如果它们无效,我将被拒绝。
但是,当我尝试访问 HttpContext.Current.User.Identity 时,该对象的 Name 和 AuthenticationType 为空字符串,并且 Authenticated = false。我想我可能需要在浏览互联网后启用 WindowsTokenRoleProvider ,但这并没有改变任何东西。
<roleManager defaultProvider="WindowsProvider" enabled="true" cacheRolesInCookie="false">
<providers>
<clear/>
<add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider"/>
</providers>
</roleManager>
自从我上次看到它工作以来,我做的两件事是通过转换向导将项目升级到 VS 2008,我还把它放下了几个月,而我的同事可能在这里或那里工作过. 我很确定唯一影响我的 User.Identity 的是上面提到的 web.config 中的值,但显然我做错了什么。还有其他人遇到类似的问题或看到我做错了什么吗?谢谢。