У меня есть два приложения, оба работают на одном компьютере с Windows. Одно приложение - это IdentityServer4, а другое - мое собственное веб-приложение (приложение Blazor на стороне сервера).
Оба веб-приложения созданы с использованием .NET Core 3.1.
Когда я перехожу в свое веб-приложение, я сначала перенаправляюсь в свое приложение IdentityServer4. Я вхожу в систему, и после этого меня перенаправляют обратно в свое веб-приложение.
Вход в систему прошел успешно, поскольку в логах IdentitServer нет ошибок. Кроме того, я вижу определенное значение claim
на моей веб-странице Blazor. Я показываю это с claim
по CascadingAuthenticationState
на моей странице Blazor. По этому пути все работает нормально.
Но всякий раз, когда я пытаюсь получить авторизованного пользователя через HttpContext
в моих файлах «кода программной части», я получаю обратно нулевую ссылку. Например:
public UserService(IHttpContextAccessor httpContextAccessor)
{
// HttpClient is NULL...
var httpCtx = _httpContextAccessor.HttpClient;
}
Странно то, что все работает нормально, когда я запускаю свое приложение локально в Visual Studio. Когда я отлаживаю в Visual Studio, я вижу, что HttpContext
установлен для всех моих пользовательских данных.
Но почему-то HttpContext
становится NULL
, когда я запускаю приложение из IIS.
Как я могу решить эту проблему?