Бесконечный цикл перенаправления входа в систему ⇐ C#
Бесконечный цикл перенаправления входа в систему
Я работаю над интеграцией аутентификации OpenID в приложение .NET Core. Однако после ввода учетных данных я оказываюсь в непрерывном цикле перенаправления между моим приложением и сервером аутентификации. В конце концов я получаю сообщение об ошибке: «Нам не удалось войти в систему. Повторите попытку».
Текущий запуск:
services.AddHttpContextAccessor(); Services.AddAuthentication(опции => { options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme; }) .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme) .AddOpenIdConnect(опции => { options.ClientId = ""; options.Authority = ""; options.Scope.Clear(); options.Scope.Add("openid"); options.Scope.Add("профиль"); options.ResponseType = OpenIdConnectResponseType.IdToken; options.GetClaimsFromUserInfoEndpoint = true; options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.UseTokenLifetime = ложь; options.TokenValidationParameters = новые параметры TokenValidationParameters { ValidateIssuer = истина }; options.SaveTokens = правда; options.Events = новый OpenIdConnectEvents { OnRedirectToIdentityProvider = асинхронный (контекст) => { context.ProtocolMessage.RedirectUri = ""; context.ProtocolMessage.PostLogoutRedirectUri = ""; ожидайте Task.CompletedTask; }, OnTokenValidated = контекст => { вернуть Задача.ЗавершеннаяЗадача; }, OnAuthorizationCodeReceived = (контекст) => { Console.WriteLine("Токен получен: " + context.TokenEndpointResponse.IdToken); вернуть Задача.ЗавершеннаяЗадача; }, OnAuthenticationFailed = OnAuthenticationFailed }; }); Я проверил, что аутентификация и авторизация выполняются в правильной последовательности.
app.UseAuthentication(); приложение.UseAuthorization(); Даже при отсутствии упомянутого промежуточного программного обеспечения проблема сохраняется, когда я полагаюсь исключительно на тег [Authorize].
app.Use(async (context, next) => { вар пользователь = context.User; if (user == null || user.Identity == null || !user.Identity.IsAuthenticated) { ждут context.ChallengeAsync(OpenIdConnectDefaults.AuthenticationScheme, новые AuthenticationProperties { IsPersistent = ложь, RedirectUri = "" }); возвращаться; } ждать следующего(); });
Я работаю над интеграцией аутентификации OpenID в приложение .NET Core. Однако после ввода учетных данных я оказываюсь в непрерывном цикле перенаправления между моим приложением и сервером аутентификации. В конце концов я получаю сообщение об ошибке: «Нам не удалось войти в систему. Повторите попытку».
Текущий запуск:
services.AddHttpContextAccessor(); Services.AddAuthentication(опции => { options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme; }) .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme) .AddOpenIdConnect(опции => { options.ClientId = ""; options.Authority = ""; options.Scope.Clear(); options.Scope.Add("openid"); options.Scope.Add("профиль"); options.ResponseType = OpenIdConnectResponseType.IdToken; options.GetClaimsFromUserInfoEndpoint = true; options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.UseTokenLifetime = ложь; options.TokenValidationParameters = новые параметры TokenValidationParameters { ValidateIssuer = истина }; options.SaveTokens = правда; options.Events = новый OpenIdConnectEvents { OnRedirectToIdentityProvider = асинхронный (контекст) => { context.ProtocolMessage.RedirectUri = ""; context.ProtocolMessage.PostLogoutRedirectUri = ""; ожидайте Task.CompletedTask; }, OnTokenValidated = контекст => { вернуть Задача.ЗавершеннаяЗадача; }, OnAuthorizationCodeReceived = (контекст) => { Console.WriteLine("Токен получен: " + context.TokenEndpointResponse.IdToken); вернуть Задача.ЗавершеннаяЗадача; }, OnAuthenticationFailed = OnAuthenticationFailed }; }); Я проверил, что аутентификация и авторизация выполняются в правильной последовательности.
app.UseAuthentication(); приложение.UseAuthorization(); Даже при отсутствии упомянутого промежуточного программного обеспечения проблема сохраняется, когда я полагаюсь исключительно на тег [Authorize].
app.Use(async (context, next) => { вар пользователь = context.User; if (user == null || user.Identity == null || !user.Identity.IsAuthenticated) { ждут context.ChallengeAsync(OpenIdConnectDefaults.AuthenticationScheme, новые AuthenticationProperties { IsPersistent = ложь, RedirectUri = "" }); возвращаться; } ждать следующего(); });
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Тонкий 4: получение текущего URL-адреса для перенаправления после входа в систему
Anonymous » » в форуме Php - 0 Ответы
- 51 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Без учетных данных проверьте домашнюю страницу перенаправления входа в систему
Anonymous » » в форуме Php - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-