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