AJAX 请求 C# 处理程序,以使用 ActiveDirectory 进行身份验证

本文关键字:ActiveDirectory 身份验证 请求 处理 程序 AJAX | 更新日期: 2023-09-27 18:36:31

所以我正在使用jQuery Mobile开发一个移动Web应用程序,我需要从该应用程序从远程服务器请求一些数据。 我从 C# SOAP Web 服务或返回 JSON 的IHttpHandler获取数据。 在返回任何数据之前,我需要以某种方式向 Web 服务/处理程序进行身份验证。 我希望使用ActiveDirectory,并通过AJAX请求以某种方式将用户名和散列密码传递给服务器。 问题是,使用 ActiveDirectory 在 C# 中进行身份验证的示例涉及将纯文本用户名和密码传递给 PrincipalContext.ValidateCredentials 。 有没有办法安全地将凭据传递给 C# 服务,并让它使用 AD 进行身份验证,而无需它知道纯文本密码?

编辑:认为也许我可以在客户端对密码进行哈希处理,将其传递给服务器,让服务器获取请求用户的 AD 密码并以相同的方式对其进行哈希处理,然后进行比较,但无法获取 AD 密码。

编辑:查看 aSSL。

AJAX 请求 C# 处理程序,以使用 ActiveDirectory 进行身份验证

如果你正在使用jquery ui开发移动Web,它不会存在于设备上,它将存在于你的Web服务器上(iis,如果它是一个Web应用程序)。应用程序可以使用 Windows 身份验证对它需要查询的服务进行身份验证,但这取决于用于运行应用程序/你端使用的模拟的用户。
问题是您的应用程序和此服务如何在它们和互联网之间通信。如果互联网无法访问该服务,我不知道您应该担心传输的安全性。
您还可以查看基于 ad fs/ad fs 2 的安全解决方案和 wcf 集成选项,例如,此处所述。
这些解决方案实现了你正在谈论的概念,AD FS 是验证/验证传递的凭据并将令牌返回到应用程序/服务的服务。通常,与 AD FS 的通信使用 SSL 来保护传输层,并对消息进行签名,以确保没有人在中间弄乱它们。
当然,您可以自己实现这样的机制。您不需要从活动目录获取密码,只需使用此处提供的代码示例查看传递的凭据(用户名/密码)是否可以验证