gpt4 book ai didi

c# - 如果属性为空,则搜索 Active Directory 并将 null 或 ""返回到 c# 中的标签中

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:20 27 4
gpt4 key购买 nike

我正在尝试搜索事件目录以从中获取用户详细信息。我用下面的详细信息填充标签。它工作正常但是如果说用户没有“除法”的值那么它会爆炸并显示以下错误消息。我尝试了不同的方法,但无法让它在标签文本帮助中显示 null 或“”!

   private void populate_table(string current_user)
{
string connection = ConfigurationManager.ConnectionStrings["ADConnection"].ToString();

DirectorySearcher dssearch = new DirectorySearcher(connection);
dssearch.Filter = "(sAMAccountName=" + current_user + ")";
SearchResult sresult = dssearch.FindOne();
DirectoryEntry dsresult = sresult.GetDirectoryEntry();

lblfname.Text = dsresult.Properties["givenName"][0].ToString();
lbllname.Text = dsresult.Properties["sn"][0].ToString();
lblemail.Text = dsresult.Properties["mail"][0].ToString();
lblDepartment.Text = dsresult.Properties["department"][0].ToString();
lblsam.Text = dsresult.Properties["samAccountName"][0].ToString();
lblBranch.Text = dsresult.Properties["division"][0].ToString();
}

我得到的错误是

Index was out of range. Must be non-negative and less than the size of the collection.

最佳答案

您需要检查以查看是否设置了给定的属性:

if (dsresult.Properties["division"] != null &&
dsresult.Properties["division"].Count > 0)
{
lblBranch.Text = dsresult.Properties["division"][0].ToString();
}
else
{
lblBranch.Text = string.Empty;
}

这就是 AD 的工作方式 - 您基本上需要检查任何不是必需属性的属性。任何不可为 null 的内容都可以在 AD 中“未设置”,因此 .Properties["...."] 将为 null

关于c# - 如果属性为空,则搜索 Active Directory 并将 null 或 ""返回到 c# 中的标签中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22909384/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com