我在带有IIS7服务器的Windows Server 2008上的IIS 7下运行C#.NET 4.0应用程序。该应用程序将在公司内部网中运行,该内部网自动获取查看页面的人员的登录Windows用户名,而不会在页面加载时提示输入凭据。现在我面临两个问题:
1)目前,应用程序返回应用程序所在的生产服务器名称(例如:XYZ \ sam)。我想获取当前登录的用户名(例如:ABC \ sam)。它在localhost下工作正常,但在生产服务器上没有。
我在web.config上启用了<authentication mode="Windows" />
,在IIS上启用了Windows身份验证和禁用匿名身份验证。
我已尝试Page.User.Identity.Name
,System.Web.HttpContext.Current.User.Identity.Name
,System.Security.Principal.WindowsIdentity.GetCurrent().Name
和其他人,但仍未能获得正确的名称。如何让当前窗口登录用户?
2)当我想访问应用程序时,它会不断提示输入用户名和密码的窗口。如果我忽略它,它会提示
401 - 未经授权:由于凭据无效,访问被拒绝。您 没有权限使用。查看此目录或页面 您提供的凭据。
我如何修复它?
答案 0 :(得分:0)
对于你的2个问题,要自动登录,你必须在浏览器上设置它,根据我的经验,我在IE中完成了这个:https://superuser.com/questions/537416/how-to-make-internet-explorer-automatically-login-in-a-certain-domain
答案 1 :(得分:0)
对于问题1,它无法检索登录的用户名,因为服务器是域服务器。它在从工作组转移到域之后有效。
对于问题2,如果我使用服务器名称访问它(例如:servername / appsname),它可以正常工作(没有弹出凭证)。但是如果我使用ip(例如:xxx.xx.xx.x / appsname)并且没有设置工具互联网选项,它会要求凭证。因素仍未知。