微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从活动目录搜索并自动完成用户名到 ASP.net 核心

如何解决从活动目录搜索并自动完成用户名到 ASP.net 核心

我正在尝试从活动目录中列出并自动完成用户名。 有人可以查看我的代码并告诉我有什么问题吗? 如果问题错了,请见谅。

查看

<input asp-for="User.Username" value="@ViewBag.Username" class="form-control" data-url="/ajax/user" />
<span asp-validation-for="User.Username" class="text-danger"></span>

//script to autocomplete
<script>
    _af.push(() => {
        $('#User_Username').autoComplete();
    });
</script>

第一种方法

[HttpPost] //this to pull the username from AD
        public JsonResult findit(string prefixText)
        {
            DirectoryEntry directory = new DirectoryEntry("LDAP://DC=x,DC=y");
            string filter = "(&(name=" + prefixText + "*))";
            string[] strCats = { "name" };
            List<string> items = new List<string>();
            DirectorySearcher dirComp = new DirectorySearcher(directory,filter,strCats,SearchScope.Subtree);
            SearchResultCollection results = dirComp.FindAll();
            foreach (SearchResult result in results)
            {
                foreach (DictionaryEntry prop in result.Properties)
                {
                    if (prop.Key.Equals("name"))
                    {
                        System.Collections.IEnumerable propsEnum = prop.Value as System.Collections.IEnumerable;
                        foreach (object individualValue in propsEnum)
                        {
                            if (individualValue.ToString().IndexOf(prefixText) != 0)
                            {
                                items.Add(individualValue.ToString());
                            }
                        }
                    }
                }
            }

            return Json(items.ToArray();
        }

第二种方法

        public async Task<IActionResult> Create(IFormCollection col)
        {
                    string username = col["user.username"].ToString().normalize();
                    var testa = findit(username);
                    var user = _context.Users.FirstOrDefault(x => x.normalizedUsername = testa);//here the issue                     
                    if (user == null)
                    {
                        user = new User
                        {
                            DateCreated = DateTime.Now,normalizedUsername = username.normalize(),Username = $"{username[0].ToString().Trim().toupper()}{username.Substring(1)}"
                        };
                        _context.Users.Add(user);
                        _context.SaveChanges();
                    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。