C# 将摘要请求重定向到active directory

C# 将摘要请求重定向到active directory,c#,http,redirect,active-directory,digest-authentication,C#,Http,Redirect,Active Directory,Digest Authentication,我正在尝试将带有摘要MD5头信息的http请求重定向到active directory以验证凭据 我有http头提供的信息,比如nonce和username。我现在的问题是,我没有链接将这些信息放入PrincipalContext对象中 我显然不能使用PrincipalContext.ValidateCredentials(用户名、密码),因为它需要纯文本形式的密码 我能够使用的唯一验证是UserPrincipal user=UserPrincipal.FindByIdentity(contex

我正在尝试将带有摘要MD5头信息的http请求重定向到active directory以验证凭据

我有http头提供的信息,比如nonce和username。我现在的问题是,我没有链接将这些信息放入
PrincipalContext
对象中

我显然不能使用PrincipalContext.ValidateCredentials(用户名、密码),因为它需要纯文本形式的密码

我能够使用的唯一验证是
UserPrincipal user=UserPrincipal.FindByIdentity(context,IdentityType.SamAccountName,username),但不包括密码


我确实有一个
HttpListenerContext
对象。但是用户变量为空。

Tim一旦您获得信息,您可以执行类似的操作来检查是否有效,如果我了解您要正确测试的内容,请尝试类似的操作

如果您是通过代码或服务运行此程序的,您应该不会在密码公开方面遇到任何问题。如果您担心这一点,那么您需要编写一些内容来解密传递字所在的MD5头信息

using(PrincipalContext prContext= new PrincipalContext(ContextType.Domain, "Your Domain"))
{
    bool isValid = prContext.ValidateCredentials("Username", "Password");
}

在我告诉我的服务器使用用户身份验证方案。IntegratedWindowsAuthentication后,他会自动发送一个WindowsPrincipal,它提供了广告中的信息。

我不关心公开密码。实际上我不知道密码。我的客户向我发送一个带有md5 nonce piggybag的摘要请求。我不喜欢解码md5,而是立即使用该字符串对活动目录进行验证。我提供的答案将允许您进行验证,但您必须编写解密md5的内容。我认为AD不支持传入或注入md5。您无法轻松解密md5。这就是它被用来解密的原因。我很清楚这一点。。但这是我能想到的唯一一个代码来做你需要做的事情。。此外,DMZ背后的系统是什么。。?如果是这样的话,那么公开的密码不应该是一个问题,如果这是公司内部的内部网络。你能举个例子吗?如何转发MD5标题?