检查用户是否是特定域上的域用户

时间:2014-05-20 18:30:31

标签: c# authentication dns

在我的应用程序中,我想确保用户在尝试模拟这些详细信息之前插入了有效的域名,用户名和密码。

为此,我使用PrincipalContext.ValidateCredentials或此处的函数:http://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C#35。 但是我看到如果我从另一个域输入用户的用户名和密码(与我输入的域具有信任关系),我得到一个肯定的结果,这很糟糕,因为当我尝试冒充使用这个域时我得到一个例外+用户+密码组合。

这意味着在检查用户名+密码是否有效之前,我需要知道用户是否属于域。我尝试使用此处提到的UserPrincipal.FindByIdentity Check if user is a Domain User or Local User,但它似乎属于同一问题,即使用户不属于该特定域,它也会返回true。

为了更容易考虑以下因素, 有2个域(相互信任)和每个域中的1个用户:

域1 \用户1

域2 \用户2

如果我输入:Domain1和User2

,我需要一个返回false的函数

注意:如果碰到这个问题:ValidateCredentials returns true for unknown user?我已经检查过并且访客帐户未启用

0 个答案:

没有答案