login
と AD 情報とのpassword
一致を確認したいと思います。このコードを試してみましたが、例外が発生しましたFindOne
(ユーザー名またはパスワードが正しくありません..しかし、それらは正しいです)。解決策があることは知っていPrincipalContext
ますが、サーバーを設定できる必要があります (Production、Dev、...)
ありがとう、
var Ad = new DirectoryEntry("LDAP://server1.domain.com", username, password);
var AdSearcher = new DirectorySearcher(Ad);
AdSearcher.Filter = String.Format("(anr={0})", username);
AdSearcher.PropertiesToLoad.Add("sAMAccountName");
AdSearcher.PropertiesToLoad.Add("displayName");
var AdSearcherResults = AdSearcher.FindOne();
var userFullName = AdSearcherResults.Properties["displayName"][0].ToString();
var userUid = AdSearcherResults.Properties["sAMAccountName"][0].ToString();
if (Membership.ValidateUser(username, userUid))
return true;
return false;
Update1私もこれを試しました:
using (var context = new PrincipalContext(ContextType.Domain, "server1.domain.com"))
{
var isValid = context.ValidateCredentials(username, password);
}
私のコンピューターはドメインに接続されていませんが、動作するはずです。