在我的应用程序中,我想确保用户在尝试模拟这些详细信息之前插入了有效的域名,用户名和密码。
为此,我使用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?我已经检查过并且访客帐户未启用