如何在AD中通过电子邮件查找用户 [英] how to look up a user by email in AD

查看:344
本文介绍了如何在AD中通过电子邮件查找用户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我有一个条件,前端应用程序中的邮件地址拼写错误的少数用户因为我在尝试发送电子邮件时看到不匹配对于这些用户,我得到例外。


如何通过查找他的电子邮件来检查AD中是否存在用户?


我开始做以下,但不幸的是我意识到我无法通过电子邮件进行搜索,因为IdentityType仅允许AD中的少数属性。


public bool CheckUserExist(string Mail)

        {

            using(var domainContext = new PrincipalContext(ContextType.Domain," abc"," xyz1234"," test")))
            {

                using(var foundUser = UserPrincipal.FindByIdentity(domainContext,IdentityType.SamAccountName,?))

                {

                    return foundUser!= null;

                }¥b $ b            }¥b $ b        }

解决方案

您可以通过电子邮件地址为用户查询AD。

 class Program 
{
static void Main(string [] args)
{
var email ="" ;;
var domain ="" ;;

var root = new DirectoryEntry(


" LDAP:// {domain}");

var filter =


"(&(objectClass = user)(mail = {email}))" ;;

使用(var searcher = new DirectorySearcher(root,filter))
{
using(var results = searcher.FindAll())
{
foreach(SearchResult结果)
{
var entry = result.GetDirectoryEntry();

Console.WriteLine(entry.Properties [" samaccountname"]?。Value);
};
};
};
}
}



Hi,

I have a condition for few users where the mail address is misspelt in the front end application due to which i see a mismatch when i try to send email to these users,I get exception.

How to check if a user is existing in the AD by looking up his email?

I started doing the below,but then unfortunately realized that the I couldnt search by email as IdentityType allows only few properties from the AD.

public bool CheckUserExist(string Mail)
        {
            using (var domainContext = new PrincipalContext(ContextType.Domain, "abc", "xyz1234", "test"))
            {
                using (var foundUser = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, ?))
                {
                    return foundUser!=null;
                }
            }
        }

解决方案

You can query AD for a user by their email address.

class Program
{
    static void Main ( string[] args )
    {
        var email = "";
        var domain = "";

        var root = new DirectoryEntry(


"LDAP://{domain}"); var filter =


"(&(objectClass=user)(mail={email}))"; using (var searcher = new DirectorySearcher(root, filter)) { using (var results = searcher.FindAll()) { foreach (SearchResult result in results) { var entry = result.GetDirectoryEntry(); Console.WriteLine(entry.Properties["samaccountname"]?.Value); }; }; }; } }


这篇关于如何在AD中通过电子邮件查找用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆