使用特定计算机对域进行身份validation?
背景
我们正在转换到基于声明的auth在我们的应用程序中(在.NET 4.5上)我们目前通过Asp.net成员身份和域身份validation正常工作。
域部分看起来像这样(概括一点):
var context = new PrincipalContext(ContextType.Domain, ADDomainName); return context.ValidateCredentials(username, password);
问题/目标
有时我们(或我们使用的一些顾问)使用的机器可以看到我们的域服务器,但不是我们域的成员。
从不在域上的计算机上测试应用程序,而不是必须启动域中的计算机以进行检查,这将是一个很大的帮助。
题
有没有办法从不在域上的计算机上对域控制器执行域身份validation? 到目前为止,我还没有找到任何研究。
您可以使用LDAP身份validation并指定代码中的凭据:
using(var context = new PrincipalContext(ContextType.Domain, "mydomain", @"mydomain\serviceAcct", "serviceAcctPass")) { //Username and password for authentication. return context.ValidateCredentials(username, password); }
或者,在runas /netonly
下运行身份validation服务器,这样您就可以使用加入计算机的工作组中的域网络凭据运行
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
是否会在这种情况下工作,所以如果你最终尝试它,我会有兴趣听听它是否有用。