使用特定计算机对域进行身份验证?

时间:2014-02-27 03:49:52

标签: c# .net authentication dns claims-based-identity

背景

我们正在我们的应用程序中转换为基于声明的身份验证(在.NET 4.5上) 我们目前通过Asp.net会员资格进行身份验证。域身份验证正常工作。

域部分看起来像这样(概括一点):

var context = new PrincipalContext(ContextType.Domain, ADDomainName);
return context.ValidateCredentials(username, password);

问题/目标

有时我们(或我们使用的一些顾问)使用可以查看我们的域名服务器但不属于我们域名的计算机的VPN连接。

从不在域中的计算机上测试应用程序将是一个很大的帮助,而不是必须启动域上的计算机才能检查。

问题

有没有办法从不在域上的计算机上对域控制器执行域身份验证?到目前为止,我还没有找到任何研究。

1 个答案:

答案 0 :(得分:2)

您可以use LDAP authentication并指定代码中的凭据:

using(var context = new PrincipalContext(ContextType.Domain, "mydomain", @"mydomain\serviceAcct", "serviceAcctPass")) 
{
    //Username and password for authentication.
    return context.ValidateCredentials(username, password); 
}

或者,在runas /netonly下运行身份验证服务器,该服务器允许您使用加入计算机的工作组中的域网络凭据运行

rem if your server is standalone
runas /netonly /user:mydomain\consultantaccount C:\dev\sts\ipsts.exe

rem or you can have it in IIS Express:
runas /netonly /user:mydomain\consultantaccount "iisexpress /path:c:\dev\sts\ /port:9090 /clr:v2.0"

我会注意到我实际上没有检查/netonly是否会在这种情况下起作用,所以如果你最终尝试它,我会有兴趣听听它是否有效。