8

ここに画像の説明を入力ログインビューのあるマスターページがあり、ログインビューにはaspログインコントロールがあります。ログインビューに含まれていないラベルもあります。

asp ログイン コントロールのユーザー名テキスト ボックス コントロールにアクセスし、テキストをラベルに表示するにはどうすればよいですか。

助けてください!

これは私のコードです:

Login lg = (Login)LoginView1.FindControl("Login1");
TextBox tb = (TextBox)lg.FindControl("UserName");

Label2.Text = tb.Text;

わかりました、これが私がしなければならないことです: 申立人は自分のアカウントを無効にすることができます。管理者と技術者のアカウントは非アクティブ化され、必要に応じて管理者によって再アクティブ化されます。申立人はいつでも自分のアカウントを再開できます。

テキストボックスに入力されたユーザー名を検証して、アクティブなユーザーかどうかを最初に確認する必要があります。そうでない場合は、再アクティブ化できます。ユーザー名のテキスト ボックスからテキストにアクセスするにはどうすればよいですか。残りは私が理解できます。

4

1 に答える 1

10

TextBox がAnonymousTemplate内にあるか、名前空間の問題であるため、ユーザーが認証されているかどうかを確認する必要があるかもしれません( WebControls.Login):

if (!HttpContext.Current.User.Identity.IsAuthenticated) {
   Login lg = (WebControls.Login)LoginView1.FindControl("Login1");
   TextBox tb = (TextBox)lg.FindControl("UserName");
   Label2.Text = tb.Text;
}

ただし、通常は、の適切なプロパティUserName / Passwordを介して UserName/Password を取得しますLogin

編集: 追加されたスクリーンショットは非常に小さいですが、InvalidCastException が発生していることがわかります。そのため、名前空間の問題に関する私の仮定は正しかったです。

于 2011-10-14T15:19:54.293 に答える