将特定域的ASP.NET模拟用户添加到Windows身份验证

时间:2015-09-03 19:48:23

标签: c# asp.net-mvc-4 windows-authentication impersonation

我在公司的Windows Server 2008中安装了MVC4应用程序(IIS 7.5)。为了远程访问Windows服务器,我们使用(xxxxDMZ \用户名,密码),这是访问网站特定页面所需的相同Windows身份验证。 我的问题不是每个人都有这个" xxxxDMZ"帐户,以便他们无法访问该页面,我想要做的是添加他们的Windows登录凭据来访问该页面(仅添加用户名),这将是' xxxx \ username'。

我读到为了做到这一点,我必须使用模仿,但我找不到明确的方法来实现它。

非常感谢任何帮助。

非常感谢你!

1 个答案:

答案 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;
        }

参考:LDAP Authentication in ASP.Net MVC