将特定域的 ASP.NET 模拟用户添加到 windows 身份验证
Posted
技术标签:
【中文标题】将特定域的 ASP.NET 模拟用户添加到 windows 身份验证【英文标题】:Adding ASP.NET impersonation users of specific domain to windows authentication 【发布时间】:2015-09-03 19:48:23 【问题描述】:我在公司的 Windows Server 2008 (IIS 7.5) 中安装了 MVC4 应用程序。要远程访问 Windows 服务器,我们使用(xxxxDMZ\用户名,密码),它们与访问网站特定页面所需的 Windows 身份验证相同。 我的问题不是每个人都有这个“xxxxDMZ”帐户,所以他们无法访问该页面,我想要做的是添加他们的 Windows 登录凭据以访问该页面(仅通过添加用户名),这将是 'xxxx\用户名'。
我读到为了做到这一点,我必须使用模拟,但我找不到明确的方法来实现它。
非常感谢任何帮助。
非常感谢您!
【问题讨论】:
模拟用于运行您网站的 IIS 进程。从我正在阅读的内容来看,您希望 DomainA 中的用户登录到托管在 xxxxDMZ 网络服务器上的网站。 【参考方案1】:这是您可以使用的功能。但是域需要可以从 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;
参考:LDAP Authentication in ASP.Net MVC
【讨论】:
非常感谢您的回答。目前我正在使用这种方式来授权控制器,我不确定我将如何实现该功能以及如何在托管网站的DMZ域和用户域之间打开端口。 [授权] public class TheNoticesController : Controller public ActionResult Notices() return View();以上是关于将特定域的 ASP.NET 模拟用户添加到 windows 身份验证的主要内容,如果未能解决你的问题,请参考以下文章