2

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

1) 目前,应用程序返回应用程序所在的生产服务器名称(例如:XYZ\sam)。我想获取当前登录的用户名(例如:ABC\sam)。它在本地主机上运行良好,但在生产服务器上却不行。

<authentication mode="Windows" />在 web.config 启用,在 IIS 启用 Windows 身份验证和禁用匿名身份验证。

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

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

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

我要怎么修?

4

2 回答 2

0

对于您的 2 问题,要自动登录,您必须在浏览器上进行设置,根据我的经验,我在 IE 中完成了此操作:https ://superuser.com/questions/537416/how-to-make-internet-explorer -自动登录到特定域

于 2013-11-07T03:45:34.250 回答
0

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

对于问题 2,如果我使用服务器名称(例如:服务器名称/应用程序名称)访问,它可以正常工作(没有弹出凭据)。但如果我使用 ip(例如:xxx.xx.xx.x/appsname)并且没有设置工具互联网选项,它会要求提供凭据。因素仍然未知。

于 2013-11-14T05:24:35.533 回答