我在公司的Windows Server 2008中安装了MVC4应用程序(IIS 7.5)。为了远程访问Windows服务器,我们使用(xxxxDMZ \用户名,密码),这是访问网站特定页面所需的相同Windows身份验证。 我的问题不是每个人都有这个" xxxxDMZ"帐户,以便他们无法访问该页面,我想要做的是添加他们的Windows登录凭据来访问该页面(仅添加用户名),这将是' xxxx \ username'。
我读到为了做到这一点,我必须使用模仿,但我找不到明确的方法来实现它。
非常感谢任何帮助。
非常感谢你!
答案 0 :(得分:0)
这是您可以使用的功能。但是需要从DMZ访问域名...这意味着在DMZ和域控制器之间打开端口。
public bool ValidateUser(string userName, string password)
{
bool validation;
try
{
LdapConnection ldc = new LdapConnection(new LdapDirectoryIdentifier((string)null, false, false));
NetworkCredential nc = new NetworkCredential(userName, password, "DOMAIN NAME HERE");
ldc.Credential = nc;
ldc.AuthType = AuthType.Negotiate;
ldc.Bind(nc); // user has authenticated at this point, as the credentials were used to login to the dc.
validation = true;
}
catch (LdapException)
{
validation = false;
}
return validation;
}