我有一个 Intranet 站点读取 Windows 用户名并使用它在网站中进行身份验证。
我的代码可以在本地运行,但在 Windows Server 2003 上使用 IIS 6 进行托管并选中匿名访问时,不会读取登录名。如果我取消选中匿名访问,那么在 Firefox 中,我会不断弹出用户名和密码的窗口,而且永远不会结束。在 IIS 6 中,它设置为框架 4,并拥有自己的应用程序池。
User.Identity.Name
-在服务器上返回空白,但在本地工作正常
网络配置:
<authentication mode="Windows"/>
<identity impersonate="true"/>
我有一个较旧的 3.5 Webforms 网站,可以在同一服务器上正常运行..
最佳答案
查看分配用于运行应用程序池的 Windows 帐户。它对您的.Net 应用程序有授权吗?
要使用 Windows 身份验证,您需要取消选中匿名访问。
删除 impersonate 属性,或将其设置为 false(默认值)。
您可以将应用程序池设置为使用网络服务帐户,然后授予网络服务帐户对 MVC 文件夹的读/写权限。
关于asp.net - 在 .NET 4 MVC 2 中启用 Windows 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3193721/