LDAP身份验证传递凭据

时间:2013-09-12 15:49:05

标签: c# .net wcf ldap

我需要将LDAP凭据传递给Web服务以在C#中进行身份验证。

我已经设置了一些设置来让用户使用DirectoryEntry,但是,由于显而易见的原因我无法获取密码。

我通过传递用户名/密码来验证C#中的第三方Web服务:j_username=me%40domain.com&j_password=mypassword%21

我知道获取LDAP密码是不可能的,但是有更好的方法来处理我正在做的事情吗?

2 个答案:

答案 0 :(得分:0)

我想说你的问题不太清楚。你说你无法获得密码,但是你传递了一个密码,那么我们不是在谈论相同的密码,它是你正在谈论的LDAP管理员密码吗?但是问题是什么?请提供更多信息。 我将冒险并告诉您,如果您的应用程序有应用程序服务器,您还可以从服务器配置对LDAP目录的访问,以便您可以直接对App Server而不是LDAP服务进行身份验证。这有帮助吗?请提供更多信息。

答案 1 :(得分:0)

可以从Active Directory retrieve a users password,但它需要在服务器本身启用特殊设置,并且通常在安全实践方面受到鄙视。

最好向用户提供一个简单的表单,他们可以输入用户名和密码,然后将绑定请求发送到目录服务器。当然,虽然看起来你通过网络服务的当前实现工作,我会采取一个稍微不同的方法,取决于谁将使用该应用程序:

  • 如果这是您组织内的内部应用程序,则可以通过IIS强制进行网络登录,这将取消对Web服务的需求。您可以在此处查看this link以获取一般概述,或this one查看代码示例的更详细说明。

  • 如果此应用程序是外部可用的,则在针对Active Directory授权用户方面有很多选项 - 但是,您仍然需要具有用户名和密码字段的表单。我已就这个主题(在C#中)写了几个答案,代码本身以System.DirectoryServices命名空间为中心。有一个示例on this thread,还有on this one

我希望这有帮助 - 但如果您有任何其他问题,请随时给我留言。