背景
我们正在我们的应用程序中过渡到基于声明的身份验证(在 .NET 4.5 上) 目前,我们通过 Asp.net 成员(member)资格和域身份验证进行的身份验证工作正常。
域部分如下所示(稍微概括一下):
var context = new PrincipalContext(ContextType.Domain, ADDomainName);
return context.ValidateCredentials(username, password);
问题/目标
有时,我们(或我们使用的一些顾问)使用的计算机可以通过 VPN 连接来查看我们的域服务器,但它们不是我们域的成员。
从不在域中的计算机测试应用程序将非常有帮助,而不必启动域中的计算机来进行检查。
问题
有没有办法从不在域中的计算机上对域 Controller 执行域身份验证?到目前为止我还没有找到任何关于它的研究。
最佳答案
您可以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
是否可以在这种情况下工作,所以如果您最终尝试它,我很想知道它是否有效。
关于c# - 使用特定机器对域进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22058645/