2015-04-01 49 views
1

我的服务器上有一个使用WindowsAuthentication登录的asp.net应用程序。该方案很简单:用户登录后,将使用相同的凭据登录应用程序。获取当前登录的用户IIS返回DefaultAppPool

当然,在我的机器上的IISExpress上工作很好,但是当我尝试在服务器上登录应用程序时,返回的当前用户是DefaultAppPool

我想这是IIS上缺少的模拟配置。我试图让当前用户:

string username = HttpContext.Current.Request.LogonUserIdentity.Name; 
string username = WindowsIdentity.GetCurrent().Name; 

...和所有的上述返回当前用户的loggedIn但只适用于IISExpress,但不能在服务器IIS。

IIS快递配置
默认应用
- 框架4.0版
- 应用程序池标识

应用程序验证配置
Application Authentication Config

服务器信息
的Windows 2008 R2企业
IIS 7.5

PD:是不是我最好的英语

+0

哪些IIS服务器上的设置。你有禁止匿名访问?此外,如果这是在Intranet上,为了将证书从浏览器传递到服务器,我相信该网站需要被信任。 – 2015-04-01 22:33:59

+0

@TrajanUnger IIS配置现在有问题。现在我需要获取开始请求的用户,但仍保留_DefaultAppPool_用户。 – 2015-04-03 15:55:57

回答

1

我也有类似的问题;据我可以告诉它,是因为在web.config文件需要具有以下项:

<authentication mode="Windows" /> 
    <identity impersonate="true" /> 

而且在Internet信息服务(IIS)管理器中的IIS /验证部分,确保仅匿名身份验证和Windows身份验证已启用。我错误地检查了ASP.NET模拟,它给了我你在这篇文章中描述的同样的错误。一旦我禁用了(与其他修改一起),它似乎工作正常。

感谢, 基南

相关问题