2

我的页面中有一个表单,用户通知其他用户的电子邮件或用户名。在我的提交事件中,我需要检查此信息是否存在于 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;
    }
}
4

2 回答 2

0

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

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;
    }
}
于 2013-07-18T17:27:48.820 回答
0

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

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();
}
于 2020-06-05T10:13:33.577 回答