2017-09-15 27 views
1

永続的な接続を確立しようとしているため、ユーザーは一度パスワードを使用する必要があります。私はこの文書:https://docs.microsoft.com/en-us/aspnet/core/security/authentication/cookie?tabs=aspnetcore2xを使用しましたが、しばらくしてもユーザはまだ切断されます。Asp.netコア永続認証 - カスタムCookie認証

await HttpContext.SignInAsync(
        CookieAuthenticationDefaults.AuthenticationScheme, 
        principal, 
        new AuthenticationProperties 
        { 
         IsPersistent = true 
        }); 

本当に持続的な接続を得るにはどうすればよいですか?

答えて

1

IsPersistentによって付与された永続性は、ドキュメントによれば、ブラウジングセッションを通じて認証が持続することを意味するだけです(つまり、ブラウザが閉じても保持されます)。クッキーの有効期限を設定するには、永続性の組み合わせが必要です。 Cookieの有効期限は、ExpireTimeSpanオプションを使用してCookieAuthenticationOptions (MSDN)で設定できます。持続性がないと、認証の有効期限がAuthenticationOptionsでExpiresUtcオプションを使用して設定することができます

+0

さてさて、私はそれを試してみましょう。 ExpiresUtcプロパティとIsPersistentプロパティは互いに排他的です。それで、私は同時に両方を使うことができないのですか? – GlobalFx

+0

@GlobalFxしたがって、ユーザーがブラウザを閉じていなくても、(ExpiresUtc経由で)絶対有効期限が設定されたCookieを拒否します。 _IsPersistent_は、ユーザーの認証有効期間がCookieAuthenticationOptionsによって指定されることを意味します。 isPersistentをfalseに設定すると、ユーザーは現在のブラウジングセッションでのみ認証されます。これは、ブラウザーが閉じられたときにクリアされます。 –

+0

これで解決策は、_IsPersistent_をtrueに設定し、_ExpiresUtc_を設定せずに_ConfigureServices_で1年と言うように_ExpireTimeSpan_を設定することです。ユーザーは1年に一度ログインすればよいのですか? – GlobalFx

関連する問題