我们正在我们的应用程序中转换为基于声明的身份验证(在.NET 4.5上) 我们目前通过Asp.net会员资格进行身份验证。域身份验证正常工作。
域部分看起来像这样(概括一点):
var context = new PrincipalContext(ContextType.Domain, ADDomainName);
return context.ValidateCredentials(username, password);
有时我们(或我们使用的一些顾问)使用可以查看我们的域名服务器但不属于我们域名的计算机的VPN连接。
从不在域中的计算机上测试应用程序将是一个很大的帮助,而不是必须启动域上的计算机才能检查。
有没有办法从不在域上的计算机上对域控制器执行域身份验证?到目前为止,我还没有找到任何研究。
答案 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
是否会在这种情况下起作用,所以如果你最终尝试它,我会有兴趣听听它是否有效。