Я довольно новичок в разработке в среде активных каталогов.Поэтому, пожалуйста, потерпите меня ...
[A] Я запустил Fiddler для навигации по некоторым страницам на моем сайте и заметил следующее.
[B] Ошибки 401, как я понимаю, вызваны тем, как работает NTLM ..
[C] Но я также за прокси, так чтоЯ также получаю эти ответы
Я также заметил, что вкладка аутентификации в fiddler содержит комбинацию этих результатов для
результатов прокси,[C]
Заголовок прокси-аутентификации присутствует: согласование
Заголовок прокси-аутентификации присутствует: Kerberos
Заголовок прокси-аутентификации присутствует: NTLM
Нет заголовка WWW-аутентификации.
401.2 Результаты [B]
Нет заголовка прокси-аутентификации.
WWW-Authenticate Header присутствует: Negotiate
WWW-Authenticate Header присутствует: NTLM
Примечание: в моих контроллерах есть пользовательский атрибут Authorize, который наследуется от класса AuthorizeAttribute.
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (base.AuthorizeCore(httpContext))
{
/* Return true immediately if the authorization is not
locked down to any particular AD group */
if (Groups == null)
return true;
//admin user -> allow all actions
if (IsUserInRole("Admin"))
{
return true;
}
else
//Domain_Users -> continue for division level permissions
if (IsUserInRole("Production_Users") || IsUserInRole("Engineering_Users") || IsUserInRole("Quality_Users"))
{
//if we've gotten here, the user is a domain user & in a specific division,
//depending on the view we're dealing with, and the users permissions allow/deny
switch (httpContext.ApplicationInstance.Request.RequestContext.RouteData.Values["action"].ToString())
{
case "Add":
return HttpContext.Current.User.IsInRole(GetGroupFromAppConfig("AddAllow"));
case "Edit":
return HttpContext.Current.User.IsInRole(GetGroupFromAppConfig("EditAllow"));
case "Delete":
return HttpContext.Current.User.IsInRole(GetGroupFromAppConfig("Deletellow"));
default:
//default = no action type is specified => we're dealing with a "view"
//& as the user has division level permissions, allow.
return true;
}
}
else
{
return false;
}
}
return false;
}
Теперь мой вопрос ... возможно ли уменьшить некоторые из результатов 401 и прокси, так как они, похоже, вызывают проблемы с производительностью.
И,
Можно ли применить сжатие gzip / deflate к результатам 401 и прокси, чтобы уменьшить их размеры?