繁体   English   中英

针对AD进行检查时,索引超出了c#范围

[英]Index was out of range c# when checking against AD

在根据活动目录检查用户时,我还会检查其邮件属性,尝试将其存储到会话变量中

但是,当用户的AD帐户没有邮件地址时,我想在屏幕上为他们显示该地址。

目前,索引超出范围已捕获异常

如何检查此内容以便设置label属性? 我显然想避免将其设置在陷阱中。

         try
            {
                var mail = adsSearchResult.Properties["mail"][0] ;
                if (mail == null)
                {
                    Label3.Text = "blablabla";
                    return;
                }
                else
                {
                    Session["email"] = adsSearchResult.Properties["mail"][0].ToString().ToLower();
                }
            }
            catch (Exception ex)
            { 
              Response.Write(ex); 
            }

您只需添加空值和长度检查,就应该实际存在这种可能性。

try {
  if (adsSearchResult.Properties["mail"]!= null && adsSearchResult.Properties["mail"].Any()) {
      var mail = adsSearchResult.Properties["mail"][0];
      if (mail == null) {
          Label3.Text = "blablabla";
          return;
      } else {
          Session["email"] = adsSearchResult.Properties["mail"][0].ToString()
              .ToLower();
      }
  }
} catch (Exception ex) {
  Response.Write(ex);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM