2012-02-15 6 views
0

私は自分のアカウントのユーザー名とパスワードを知っています。ドメイン上の任意のPCにログインできます。C#ActiveDirectoryはfalseを返し続けます。どうして?

Console.WriteLine("User Name: " + userName + " Password: " + tb.Text.ToString().Trim()); 
System.DirectoryServices.AccountManagement.PrincipalContext pc = new System.DirectoryServices.AccountManagement.PrincipalContext(ContextType.Domain, "DOMAIN.TLD");     

// validate the credentials 
bool validatedOnDomain = pc.ValidateCredentials(userName, tb.Text.ToString().Trim()); 
return validatedOnDomain; 

このメソッドはfalseを返し続けます。

ここで何か問題がありますか?私はまた私のパスワードが何であるか知っています。どんなassitanceも素晴らしいでしょう!

tb - >パスワードが入力されているテキストボックス。私はすべての空白を削除し、それをトリミング(アップユーザーネジ場合)

+0

「PrincipalContext.ValidateCredentials」が予期せずfalseを返すことを扱う、ここ(およびインターネット上の他の場所)には、他にもいくつか質問があります。あなたはそれらを見ましたか? –

答えて

1

あなたはこれを試すことができます:

bool validatedOnDomain = pc.ValidateCredentials(userName, tb.Text.ToString().Trim(), ContextOptions.Negotiate); 

あなただけのサーバーに結合するために使用されるオプションをSpecifieする必要があります。

+0

私はそれを行いましたが、それと同じ問題です。 –

+1

さまざまなコンテキストオプションで遊んでいますか? – JPBlanc

+0

はい、すべて同じような結果です。何らかの理由で、私は元のコードを試して、それは本当に来た。実際の問題は、真実になるべきときに私は間違っているということです。 –

関連する問題