0
私はサーバサイドのカスタムバリデータを持っています。それは発砲していないので、私はテキストボックスを検証するためにクライアント側を使いたいです。これは、アクティブなディレクトリを含んでいます。私はコードをクライアント側に変換することはできませんか?サーバ側のカスタムバリデータをクライアント側に置き換えます
<td class="style4">
<asp:TextBox ID="TextUserName" runat="server"></asp:TextBox>
</td><td><asp:CustomValidator ID="CustomValidatorUser" runat="server" ControlToValidate="TextUserName"
ErrorMessage="Minimum of 6 (six) alphanumeric characters."
OnServerValidate="ValidateUser" Display="Dynamic"
ValidateEmptyText="True" ></asp:CustomValidator></td>
そして
protected void ValidateUser(object source, ServerValidateEventArgs args)
{
string UserNameCreated = TextUserName.Text;
string AD_Server = System.Configuration.ConfigurationManager.AppSettings["AD_Server"];
DirectoryEntry entry = new DirectoryEntry(AD_Server);
entry.AuthenticationType = AuthenticationTypes.Secure;
DirectorySearcher deSearch = new DirectorySearcher(entry);
deSearch.Filter = "(&(objectClass=user)(samaccountname=" + UserNameCreated + "))";
SearchResultCollection results = deSearch.FindAll();
Match match = Regex.Match(args.Value, @"^[a-zA-Z0-9]{6,}$",
RegexOptions.IgnoreCase);
if (results.Count > 0)
args.IsValid = false;
else if (match.Success)
args.IsValid = true;
// true means that it is validated.
else
args.IsValid = false;
}
私の思考:
拳:
<td class="style4">
<asp:TextBox ID="TextUserName" runat="server"></asp:TextBox>
</td><td><asp:CustomValidator ID="CustomValidatorUser" runat="server" ControlToValidate="TextUserName"
ErrorMessage="Minimum of 6 (six) alphanumeric characters."
ClientValidatationFunction="ValidateUser" Display="Dynamic"
ValidateEmptyText="True" ></asp:CustomValidator></td>
セカンド
<script language="javascript">
function ValidateUser(source, arguments)
{
var RegularExpression = /^[a-zA-Z0-9]{6,}$/;
if (arguments.Value.test(RegularExpression) == 0){
arguments.IsValid = true;
} else {
arguments.IsValid = false;
}
}
</script>
それではADはどうですか?多分それは間違った質問です!
ありがとうございました。
特定の検証では、両方を実行することをお勧めします。例えば、クライアント側でチェックされた必須フィールドは、より迅速なフィードバックを生成することができる。 – Guvante
@Guvante:セキュリティは問題ではないが、ユーザーを認証しようとしている場合は、サーバーで必要な操作を実行する必要があります(空のフィールドの検証は除きます)。クライアントの検証がこの場合に適しているかどうかは、ユーザーからの情報がそれ以上ないと言うことはありません。 –
私にajaxコールリンクを教えてください。純粋なクライアント側のチェックや、クライアント側とサーバー側の組み合わせが考えられます。 –