我的页面中有一个表单,用户可以通过电子邮件或用户名告知其他用户。 在我的提交事件中,我需要检查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;
}
}
答案 0 :(得分: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;
}
}
答案 1 :(得分: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();
}