0

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

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

目前,由于索引超出范围而捕获异常

我怎样才能检查这一点,以便我可以设置标签属性?我显然想避免将其设置在 catch 中。

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

1 回答 1

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);
}
于 2014-07-25T10:49:29.617 回答