检查AD时索引超出范围c#

时间:2014-07-25 10:43:58

标签: c# sql indexoutofrangeexception

在针对活动目录检查用户时,我还检查他们的邮件属性,尝试将其存储到会话变量

但是,当用户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); 
            }

1 个答案:

答案 0 :(得分:0)

你只需要添加空值和长度检查,实际上你应该有这种可能性。

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);
}