2016-10-31 17 views
1

脳腫瘍かもしれませんが、いつもtrue(承認済み)を返す広告に対して自分の証明書を検証しようとすると、 いつも、それはなぜですか?これは私が「送信」ボタンをクリックしたときにその作業を確認するだけのテストです:ADとの資格情報を確認する

protected void Button1_Click(object sender, EventArgs e) 
    { 
     string username1 = uniloginTextBox.Text; 
     string password1 = passwordTextBox.Text; 

     using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "cv.local")) 
     { 
      // validate the credentials 
      bool isValid = pc.ValidateCredentials(username1, password1, ContextOptions.Negotiate); 
     } 

     if (IsValid == true) 
     { 
      Label.Text = "approved"; 
     } 
     else if (IsValid == false) 
     { 
      Label.Text = "Denied"; 
     } 
+2

:このようなusingステートメントのisValid外を移動しますとにかくそれがその文脈に存在しないからです。 'isValid'を使用の外側に移動し、デフォルトではfalseに設定し、その値を' using'の中に設定し、後で 'Label1.Text = isValid? "Approved": "Denied"; ' – Equalsk

+0

はい、小さいiのisValidはusingブロックの内側にあります。ブロックが終了するとすぐに死ぬ。 IsValidは資本で私は別のものです。 –

答えて

1

あなたif文がIsValidという名前のオブジェクトの真理値をチェックしています。作成したboolの名前はisValidです。 1つは資本で始まり、もう1つは資本ではないことに注意してください。

bool isValidは、内部で宣言されている使用ブロック外には存在しません。あなたがチェックできなかったブール `isValid`(一方が他方にはない、首都で始まる)、` IsValid`という名前のいくつかのオブジェクトではなくチェックしている

protected void Button1_Click(object sender, EventArgs e) 
{ 
    // Username and password text 
    var username1 = uniloginTextBox.Text; 
    var password1 = passwordTextBox.Text; 

    // isValid defaults to false 
    bool isValid = false; 

    // Check credentials against AD 
    using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "cv.local")) 
    { 
     // Set value for isValid 
     isValid = pc.ValidateCredentials(username1, password1, ContextOptions.Negotiate); 
    } 

    // Achieves the same as your if statement 
    Label.Text = isValid ? "Approved" : "Denied"; 
} 
関連する問題