#cookies #asp.net-core-1.0 #identityserver4
#файлы cookie #asp.net-core-1.0 #identityserver4
Вопрос:
Я пытаюсь установить IdentityServer4
время жизни файла cookie аутентификации. Это моя конфигурация клиента :
// OpenID Connect hybrid flow and client credentials client (MVC)
new Client
{
ClientId = "mvc",
ClientName = "MVC Client",
AllowedGrantTypes = GrantTypes.HybridAndClientCredentials,
IdentityTokenLifetime = 120,
AccessTokenLifetime = 120,
AuthorizationCodeLifetime = 120,
ClientSecrets = new List<Secret>
{
new Secret("secret".Sha256())
},
RedirectUris = new List<string>
{
"http://localhost:5002/signin-oidc"
},
PostLogoutRedirectUris = new List<string>
{
"http://localhost:5002"
},
AllowedScopes = new List<string>
{
StandardScopes.OpenId.Name,
StandardScopes.Profile.Name,
StandardScopes.OfflineAccess.Name,
"api1"
}
}
и мой Configure
метод в клиенте mvc
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationScheme = "Cookies",
AutomaticChallenge = true,
ExpireTimeSpan = System.TimeSpan.FromSeconds(120),
SlidingExpiration = false
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
AuthenticationScheme = "oidc",
SignInScheme = "Cookies",
Authority = "http://localhost:5000",
RequireHttpsMetadata = false,
ClientId = "mvc",
ClientSecret = "secret",
ResponseType = "code id_token",
Scope = { "api1", "offline_access" },
GetClaimsFromUserInfoEndpoint = true,
SaveTokens = true
});
app.UseStaticFiles();
app.UseMvcWithDefaultRoute();
}
Я использую приведенный ниже пример из примеров IdentityServer4 для изучения IdentityServer4.
IdentityServer4.Samples/Quickstarts/5_HybridFlowAuthenticationWithApiAccess
Я уже установил время истечения срока действия файла cookie, время жизни токена доступа, время жизни токена идентификации и время жизни кода авторизации. Но все же время жизни файла cookie отображается как сеанс в браузере.
Пожалуйста, смотрите Изображение ниже
Я пропустил какие-либо настройки?
Любая помощь приветствуется.
Комментарии:
1. Спасибо за ваш реплей. Я попробовал оба решения в этом ответе. Но, к сожалению, это не работает. Может быть, мне следует дождаться обновления.
2. Чтобы решить источник проблемы: добавьте
OnRedirectToIdentityProvider
событие для промежуточного программного обеспечения openidconnect и отладьте проект. Проверьте событие, когда срок действия cookie истек. Если событие запущено, это проблема с сервером авторизации. Если нет, то это проблема клиентского приложения.3. Или включите журнал и посмотрите, есть ли перенаправление на поставщика удостоверений (когда срок действия cookie истек).