是否可以自动确定Windows用户的用户名,而无需用户使用其用户名和密码登录Web应用程序?当然,该用户将使用相同的Active Directory用户名登录Windows。
到目前为止,我所看到的是,如果我在IIS中使用 NetworkService 的应用程序池以 Application用户(通过身份验证)的身份连接了Web应用程序, strong>身份和 NetworkService 具有读取并执行,列出文件夹内容和 Read 访问权限,然后是以下三个之一事情发生了:
我正在查看Page_Load上的Environment.UserName:
protected void Page_Load(object sender, EventArgs e)
{
//Set username on interface
txtUsername.Text = Environment.UserName;
}
如果我要求用户提供凭据,我将使用:
//Determine if user entered the correct username and password
bool AuthenticatedViaAD = DomainContext.ValidateCredentials(loginModule.UserName, loginModule.Password);
我希望在不询问用户名的情况下使用的是:
//Get current user
UserPrincipal currentUser = UserPrincipal.FindByIdentity(DomainContext, Environment.UserName);
用户在启用Windows身份验证的情况下输入其用户名和密码后,Page.User.Identity.Name 会适当填充:
txtPageUser.Text = Page.User.Identity.Name;
答案 0 :(得分:2)
这可能是由于浏览器安全策略所致(如果输入Windows凭据有效)
IE和大多数其他浏览器不会将Windows身份验证提交给不受信任的站点或Intranet网站,因为这显然存在安全风险。
尝试将站点添加到“受信任的站点”列表中,然后查看是否可以解决您的问题。