Я использую оператор System.Web.HttpContext.Current.Request.LogonUserIdentity.Groups для получения списка групп ADG, принадлежащих этому пользователю входа в AD.Сайт настроен с включенной аутентификацией Windows и развернут в двух сетях AWS VPC.В одной сети VPC я могу правильно получить полный список групп. В другой сети VPC я последовательно получил 105 групп, если вошедший в систему пользователь имеет более 105 групп.Обе сети VPC настроены и принадлежат двум организациям.
Могу ли я узнать, как устранить эту проблему?
Сайт использует ASP.net WebApi2 Развернуто на сервере IIS 10 Windows 2016 Развернуто в двух разныхVPC, тот же сервер входа AD
Я проверил сервер входа AD% LOGONSERVER% на обоих серверах, они одинаковы. Оба сайта включают аутентификацию Windows по умолчанию с предварительными настройками по умолчанию и согласованием, последовательность поставщиков NTLM одинаковаа также.
С помощью PowerShell, используя этот код, я считаю эквивалентным, я получил все группы.
`$ id = [Security.Principal.WindowsIdentity] :: GetCurrent ()
$ groups = $ id.Groups |foreach-object {$ _. Translate ([Security.Principal.NTAccount])} `
Итак, я подозреваю, что это из-за проблемы с токеном Kerberos, запрос на увеличение размера токена для администраторов сервера на основе ссылкиссылка на сайт.https://support.microsoft.com/en-us/help/327825/problems-with-kerberos-authentication-when-a-user-belongs-to-many-grou
Есть ли способ решить проблему?Проблема возникает на серверах, находящихся под AWS ELB.
Ниже приведен код, использующий контроллер API asp.net.
public List<string> GetCurrentUserGroupList()
{
List<string> currentGroupList = new List<string>();
try
{
if (this.User != null && this.User.Identity != null)
{
foreach (System.Security.Principal.IdentityReference group in
System.Web.HttpContext.Current.Request.LogonUserIdentity.Groups)
{
currentGroupList.Add(group.Translate(typeof
(System.Security.Principal.NTAccount)).ToString());
}
}
}
catch (Exception exc)
{
Console.WriteLine(exc.Message);
Console.WriteLine(exc.StackTrace);
}
return currentGroupList;
}