1

私のページでは、リクエストにユーザーを追加する必要があります。アクティビティ ディレクトリで、入力されたこの名前または電子メールを検証する必要があります。AD でこの値を検証するためにユーザーと C# を挿入するフォーム (ASPX、HTML、Javascript) を持っている人はいますか?

今日、それは私が持っているものですが、見た目は醜く、入力されたものを検証しません。

<asp:TextBox ID="txtUserAdd" runat="server" Height="17px" Width="150px"></asp:TextBox>
    <asp:Button ID="btnAddUser" class="btn" runat="server" Font-Bold="true" Text="Add User" OnClick="btnSendUser_OnClick" />
    <br />
    <table id="tblUsers" CssClass="table table-bordered">
        <asp:Label ID="lblUser" runat="server" Visible="false"></asp:Label>
    </table>


protected void btnSendUser_OnClick(object sender, EventArgs e)
{
    lblUser.Visible = true;
    lblUser.Text = txtUserAdd.Text;
}
4

2 に答える 2

0

個人的には Active Directory を扱ったことがないので、「Active Directory」はデータベースのようなものだと思い込んでいます。ASP .NET からの MSDN Active Directory 認証に関する情報があります。現在、ASP.net アプリで認証を確認する方法は 3 つあります。

1. 正規表現の使用

public class Test_Validation
{
  public bool Test_User(string username)
  {
  // Setup your username pattern
    const string pattern = @"^[a-z0-9_-]{3,15}$"/*NICE SAMPLE Username REGEX!*/;
    // check if the pattern matches
    if (System.Text.RegularExpressions.Regex.IsMatch(/*The string to check the pattern on*/username, /* the regular expression pattern */pattern, /* a flag for REGEX */ System.Text.RegularExpressions.RegexOptions.IgnoreCase))
    {
        System.Console.WriteLine("  (match for '{0}' found)", pattern);
    }
    else
    {
        System.Console.WriteLine("Sorry, no match found");
    }
  }
}

1+ if/else ステートメントを使用して文字列を解析すると、これは非常に冗長で不必要な説明のようです。

2. jQuery 検証の使用。このサイトで jQuery の検証について読むことができます: jQuery 検証プラグインの使用例

3. Data-Annotation 属性を使用する Data-Annotation の使用 に関する優れた記事は次のとおりです。Using Attributes to Define Validation Rule Sets

申し訳ありませんが、リストされているコード例は多くありません。私に聞いてください。どのタイプの検証を進めて使用したいかについて詳しく説明させていただきます (個人的には最後のオプションを使用します)。

于 2013-07-21T08:35:21.483 に答える
0

カスタム バリデータ サーバー側 http://msdn.microsoft.com/en-us/library/f5db6z8k%28v=vs.100%29.aspx

AD の場合、System.DirectoryServices を使用します。私は DirectorySearcher を使用します。

于 2013-08-22T19:35:22.800 に答える