C# 如何获取当前windows用户名并禁用凭据提示?

C# 如何获取当前windows用户名并禁用凭据提示?,c#,asp.net,windows,iis,C#,Asp.net,Windows,Iis,我有一个C#.NET 4.0应用程序在IIS7服务器的Windows Server 2008上的IIS7 7下运行。该应用程序将在公司内部网中运行,该内部网将自动获取查看页面的人员登录的Windows用户名,而不会在页面加载时提示输入凭据。现在我面临两个问题: 1) 当前,应用程序返回应用程序所在的生产服务器名称(例如:XYZ\sam)。我想获取当前登录的用户名(例如:ABC\sam)。它可以在本地主机上正常工作,但在生产服务器上不能 我在web.config上启用了,在IIS上启用了windo

我有一个C#.NET 4.0应用程序在IIS7服务器的Windows Server 2008上的IIS7 7下运行。该应用程序将在公司内部网中运行,该内部网将自动获取查看页面的人员登录的Windows用户名,而不会在页面加载时提示输入凭据。现在我面临两个问题:

1) 当前,应用程序返回应用程序所在的生产服务器名称(例如:XYZ\sam)。我想获取当前登录的用户名(例如:ABC\sam)。它可以在本地主机上正常工作,但在生产服务器上不能

我在web.config上启用了
,在IIS上启用了windows身份验证并禁用了匿名身份验证

我尝试了
Page.User.Identity.Name
System.Web.HttpContext.Current.User.Identity.Name
System.Security.Principal.WindowsIdentity.GetCurrent().Name
,以及其他名称,但仍然无法获得正确的名称。如何获取当前windows登录用户

2) 当我想访问应用程序时,它会不断提示输入用户名和密码。如果我忽略它,它会提示出来

401-未经授权:由于凭据无效,访问被拒绝。你 没有使用查看此目录或页面的权限 您提供的凭据


我该如何解决它?

对于您的2个问题,要自动登录,您必须在浏览器上设置它,根据我的经验,我在IE中已经这样做了:

对于问题1,它无法检索登录的用户名,因为服务器是域服务器。它在从工作组转移到域后工作


对于问题2,如果我使用服务器名(例如:servername/appsname)进行访问,它可以正常工作(没有弹出凭证)。但是如果我使用ip(例如:xxx.xx.xx.x/appsname)并且没有设置工具internet选项,它将要求提供凭据。因素仍然未知。

System.Net.CredentialCache.DefaultNetworkCredentials?@Sudhakar感谢您的回复。你能解释一下吗?请在你的答案中添加链接中的实质性内容。链接到另一个站点以“找到答案”对SO用户来说并不理想,结果是一个不太有价值的答案。谢谢回复。我添加了类似dis-“”的站点,但它仍然提示出凭据窗口。@GG90,尝试一下:转到IE internet选项->安全选项卡->自定义级别->然后在设置的底部有“用户身份验证”,选择“与当前用户进行身份验证登录…”@GG90您必须使用与站点相同的凭据登录pc。