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



Background

我们正在应用中过渡到基于声明的身份验证(在 .NET 4.5 上)我们目前通过 Asp.net 成员资格和域身份验证进行身份验证可以正常工作。

域部分如下所示(稍微概括一下):

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

问题/目标

有时,我们(或我们使用的一些顾问)使用可以看到我们的域服务器但不是我们域成员的计算机进行VPN连接。

从不在域中的计算机

测试应用程序将有很大帮助,而不必启动域中的计算机进行检查。

问题

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

您可以使用 LDAP 身份验证并从代码中指定凭据:

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

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

rem if your server is standalone
runas /netonly /user:mydomainconsultantaccount C:devstsipsts.exe
rem or you can have it in IIS Express:
runas /netonly /user:mydomainconsultantaccount "iisexpress /path:c:devsts /port:9090 /clr:v2.0"

我会注意到,我还没有真正检查/netonly在这种情况下是否有效,所以如果你最终尝试它,我很想听听它是否有效。

相关内容

最新更新