【问题标题】:Check if User/Email exists in AD检查 AD 中是否存在用户/电子邮件
【发布时间】:2013-07-18 16:41:22
【问题描述】:

我的页面中有一个表单,用户通知其他用户的电子邮件或用户名。 在我的提交事件中,我需要检查此信息是否存在于 Active Directory 中。 我怎么做这个检查? 我清楚了吗?

我的页面

<asp:Label ID="lblUserAdd" runat="server" Font-Bold="true" Text="Add User - (Email or User Name)"></asp:Label>
    <br />
    <asp:TextBox ID="txtUserAdd" runat="server" Height="17px" Width="150px"></asp:TextBox>
    <asp:Label ID="lblError" runat="server" class="control-label" for="inputError" Visible="false">Input with error</asp:Label>
    <asp:Label ID="lblsuccess" runat="server" class="control-label" for="inputSuccess"
        Visible="false">Input with success</asp:Label>
    <asp:Button ID="btnAddUser" class="btn" runat="server" Font-Bold="true" Text="Add User"
        OnClick="btnSendUser_OnClick" />
    <br />
    <table id="tblUsers" class="table table-bordered">
        <asp:Label ID="lblUser" runat="server" Visible="false"></asp:Label>
    </table>

我的.cs

protected void btnSendUser_OnClick(object sender, EventArgs e)
{
    PrincipalContext ADDomain = new PrincipalContext(ContextType.Domain, "x.com", "amsndruser", "x");

    lblUser.Visible = true;
    lblUser.Text = txtUserAdd.Text;
    if (txtUserAdd.Text != "EMAIL AD" || txtUserAdd.Text != "USER NAME AD" || txtUserAdd.Text != "USER AD")
    {
        lblError.Visible = true;
    }

    else
    {
        lblsuccess.Visible = true;
    }
}

【问题讨论】:

    标签: c# asp.net .net active-directory


    【解决方案1】:

    我为此创建了一个解决方案。

    protected void btnSendUser_OnClick(object sender, EventArgs e)
    {
        string Loginfo = txtUserAdd.Text;
        string LoginInfo = txtUserAdd.Text;
        PrincipalContext insPrincipalContext = new PrincipalContext(ContextType.Domain, "x.com", "amsndruser", "XXX");
        UserPrincipal insUserPrincipal = UserPrincipal.FindByIdentity(insPrincipalContext, LoginInfo);
        if (insUserPrincipal == null)
        {
            lblError.Visible = true;
        }
    
        else
        {
            lblsuccess.Visible = true;
            lblUser.Visible = true;
            lblUser.Text = txtUserAdd.Text;
        }
    }
    

    【讨论】:

      【解决方案2】:

      我知道,这确实是老线程,但我一直在寻找解决方案,最后,这对我有用:

      using System.DirectoryServices.AccountManagement;
      
      static bool UserExists(string UserName, string Email)
      {
          PrincipalContext context = new PrincipalContext(ContextType.Domain, "YourDomain.xxx");
          UserPrincipal user = new UserPrincipal(context);
          user.SamAccountName = UserName;
          user.EmailAddress = Email;
          PrincipalSearcher ps = new PrincipalSearcher();
          ps.QueryFilter = user;
          var results = ps.FindAll().ToList();
          return results.Any();
      }
      

      【讨论】:

        猜你喜欢
        • 2021-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-05
        • 1970-01-01
        • 1970-01-01
        • 2016-12-22
        • 1970-01-01
        相关资源
        最近更新 更多