Индекс был вне диапазона C# при проверке по 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); 
            }

1 ответ

Решение

Вы просто можете добавить проверку нуля и длины, вы должны на самом деле, если есть такая возможность.

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);
}
Другие вопросы по тегам