Asp.net Windows身份验证拒绝匿名访问

Asp.net Windows身份验证拒绝匿名访问,asp.net,windows,authentication,Asp.net,Windows,Authentication,当我将RDP发送到web服务器(客户)时,我将用户名输入为域/用户名。这告诉我我在广告里。 我设置了web.config authentication mode=“Windows”和Authorization deny=“?”(我的理解是,这意味着拒绝所有未经Windows验证的用户。) 然后我尝试打开一个测试页面(test.aspx)。我被拒绝访问。 如果我将授权设置为允许用户=“*”,页面将打开。但是environment.UserDomainName返回“IIS APPPOOL”。我希望e

当我将RDP发送到web服务器(客户)时,我将用户名输入为域/用户名。这告诉我我在广告里。 我设置了web.config authentication mode=“Windows”和Authorization deny=“?”(我的理解是,这意味着拒绝所有未经Windows验证的用户。) 然后我尝试打开一个测试页面(test.aspx)。我被拒绝访问。 如果我将授权设置为允许用户=“*”,页面将打开。但是environment.UserDomainName返回“IIS APPPOOL”。我希望environment.UserDomainName返回实际的域名。
我需要做什么?或者我遗漏了什么?

如果我理解了您的问题,您正在尝试获取当前用户。如果是这样,您可以使用以下内容:

string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

可能的重复项我似乎无法获取当前用户名。我可以得到域名。我得到的域名如下(作品):Environment.UserDomainName;但是当我尝试获取用户名时(以下所有方法),我获取的是服务器名而不是用户名:Environment.UserName;System.Environment.UserName;GetEnvironmentVariable(“用户名”);web.config有:或“false”,没有区别。IIS中的站点已将Windows身份验证和匿名身份验证设置为启用。以下行实际上为我提供了记录的用户名:HttpContext.Current.Request.LogonUserIdentity.name;其他重要的设置应该是:在web.config中:谢谢。PS我希望我能理解如何使代码显示为代码。根据您的其他评论,您希望获得当前用户名。这就是我要回答的问题。现在,您最初的问题是获取用户域名。现在看来你两个都做到了。因此,现在您正在寻找某些设置来停止拒绝访问问题?一旦我了解如何在注释中显示代码,我将回答您的问题。我想显示代码,但它全部显示为文本。如果您想发布代码,请在代码的开头和结尾使用回勾(ESC键下的键)。如下所示:
string s=“testing”。在我的代码中,我正在查找基于域名帐户名的用户的电子邮件地址。下面是代码:
string CurrentUserDomain=HttpContext.Current.Request.LogonUserIdentity.Name;PrincipalContext ctx=新PrincipalContext(ContextType.Domain);UserPrincipal user=UserPrincipal.FindByIdentity(ctx,IdentityType.SamAccountName,CurrentUserDomain);如果(user!=null){lblEmail.Text=user.EmailAddress;}
感谢您在后面打勾的建议。太糟糕了,我不知道如何使每一行都显示在单独的一行上。