如何使用用户主体上下文从 Active Directory 中检索电话号码

詹姆士

此代码可以完美地使用用户名和密码从 Active Directory 获取电话号码

    public string GetPhone(string domain, string username, string pwd)
    {
        _path = "LDAP://" + domain;
        string domainAndUsername = domain + @"\" + username;
        DirectoryEntry entry = new DirectoryEntry(_path, domainAndUsername, pwd);
        string telephoneNumber = string.Empty;

        try
        {
            object obj = entry.NativeObject;
            DirectorySearcher search = new DirectorySearcher(entry);

            SearchResult result = search.FindOne();

            var myEntry = result.GetDirectoryEntry();
            telephoneNumber = myEntry.Properties["telephoneNumber"].Value.ToString();
        }
        catch (Exception ex)
        {

            throw new Exception("Error obtaining phone number. " + ex.Message);
        }
        return telephoneNumber;
    }

但是,我只能在登录页面上访问用户密码。我确实生成了用户上下文,尽管它可以从应用程序中的任何地方访问(Context.User它是System.Security.Principal.IPrincipal类型)

因此,如何使用已经可用的Context.User对象从 Active Directory 中获取电话?

非常感谢您提前

詹姆士

看起来我把一切都复杂化了,解决方案很简单

    private void SetPhone()
    {
        DirectoryEntry entryDomain = new DirectoryEntry("LDAP://" + domain);
        DirectorySearcher ds = new DirectorySearcher(entryDomain);

        string lastName = Context.User.Identity.Name.Split(' ')[Context.User.Identity.Name.Split(' ').Length - 1];

        ds.Filter = "(sn=" + lastName + ")";
        SearchResult sr = ds.FindOne();

        string telephoneNumber = sr.Properties["telephoneNumber"][0].ToString();
        telephoneNumber = telephoneNumber.Insert(0, "(").Insert(4, ")").Insert(5, " ").Insert(9, "-");
        Session["UserPhone"] = String.Format("{0:(###) ###-####}", telephoneNumber); ;
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用主体上下文连接到Active Directory?

如何使用 Microsoft Graph API 获取 Active Directory 用户的电话号码

如何在Nexmo中检索可用的电话号码?

如何在硒中检索电话号码?

使用 Scrapy 检索隐藏的电话号码

Azure Active Directory:经MFA验证的电话号码存储在哪里?

如何在Bot Framework中从Twilio检索用户的电话号码?

使用indexOf从文本文件中检索电话号码

如何仅从Active Directory中检索启用的用户

如何使用flutter从Firebase检索电话号码

使用Twilio Flex时检索电话号码

如何使用Ruby从Active Directory中检索已删除的对象?

我想在此 DRF 中同时使用电话号码和电话号码登录

从 Active Directory 中的组中删除用户

是否可以仅使用用户的证书在Active Directory中查询该用户?

如何从Firebase中的用户帐户中删除电话号码?

在Django中修改Active Directory用户

如何在功能中获取用户的电话号码?

如何访问cakephp中已登录的用户的电话号码?

Active Directory用户的家园

Active Directory用户列表

计算Active Directory用户

无法在wso2 API管理器中的Active Directory中使用用户登录

使用用户SAMAccountName从Active Directory中读取嵌套的组名

如何在MySQL中从电话号码中删除空格

如何使用reactjs从电话号码中删除+符号

对话流webhook中的电报用户电话号码或ID

在Firebase Cloud功能中获取用户电话号码

如何在React中设置电话号码的样式?