c# - 使用特定机器对域进行身份验证?

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

背景

我们正在我们的应用程序中过渡到基于声明的身份验证(在 .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/

相关文章:

c# - 如何针对 Visual Studio 优化此 LINQ 查询?

c# - 抛出异常,除非在断点后运行

authentication - JBoss 是否缓存身份验证信息?

go - 尝试检索个人资料信息时 linkedin 登录返回 404

c# - c# 中是否有 jQuery 扩展?

c# - 如何拆分列可能包含逗号的csv

c# - Culture-Invariant 区分大小写的字符串比较在不同的机器上返回不同的结果

authentication - Grails Spring Security-在身份验证中使用其他属性

c# - C# 中的播放列表 (axWindowsMediaPlayer)

C# System.InvalidOperationException : The current TransactionScope is already complete