Textbox.TextMode="Password" の場合、ASP.net の CustomValidator は空です。サーバーメソッドを呼び出して、value.Value を取得しようとします。
TextMode を SingleLine または MultiLine に変更すると、すべて正常に動作します。パスワードを持っているとき、値は空です。
しかし、私にとっては textmode=password なしでそれを行う方法はありません。
Textbox.TextMode="Password" の場合、ASP.net の CustomValidator は空です。サーバーメソッドを呼び出して、value.Value を取得しようとします。
TextMode を SingleLine または MultiLine に変更すると、すべて正常に動作します。パスワードを持っているとき、値は空です。
しかし、私にとっては textmode=password なしでそれを行う方法はありません。
args.Value から値を取得する代わりに、次のようにテキストボックスから直接取得します。
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
string pwd = txtPwd.Text;
if (pwd == "something")
{
args.IsValid = false;
}
else
{
args.IsValid = true;
}
}
これは、セキュリティ上の標準的な動作だと思います。