Я получаю следующее сообщение об ошибке при тестировании запросов в тестовом проекте:
"В функции "Авторизация" отсутствует состояние с ключом HotChocolate.Authorization.UserState"
У моего TestExecutorHelper есть .AddAuthorization() и .AddAuthorizationPermissions(), но он все еще не работает.
Кто-нибудь знает, как я могу это решить?
Вот мой метод TestExecutor.ExecuteAsync
IRequestExecutorBuilder requestExecutor = serviceCollection
.AddAuthorization()
.AddLogging()
.AddGraphQL()
.AddAuthorization()
.AddAuthorizePermissions()
.AddErrorFilter<ErrorFilter>()
.AddQueryType<QueryType>();
var serviceProvider = requestExecutor.Services.BuildServiceProvider();
var request = QueryRequestBuilder.New()
.SetQuery(query)
.SetServices(serviceProvider)
.Create();
var executor = await requestExecutor.BuildRequestExecutorAsync();
return await executor.ExecuteAsync(request);





Как я вижу, у вас есть эта проблема из-за вызова .AddGraphQL() вместо .AddGraphQLServer().
Состояние UserState добавляется внутри DefaultHttpRequestInterceptor , а DefaultHttpRequestInterceptor регистрируется внутри AddGraphQLServer , но не в AddGraphQL
Спасибо, но это было не так, оказывается, проблема заключалась в DefaultAuthorizationHandler в методе GetUserState, из-за того, что это был тестовый проект, не было доступного пользователя или принципала утверждений, поэтому он всегда выдает исключение, я решил это с помощью создание пользовательского обработчика авторизации, который добавляет принцип утверждения