私は、RC1ビットと外部(Google)認証を使用し、Identity.EntityFrameworkを使用していません。ASP.NET 5 Identity 3ユーザーがしばらくしてからサインアウトしました
ログイン時に「Remember me」フラグを設定します。
ログインしたユーザーはブラウザの再起動後も存続します(Cookieの有効期限は14日間です)。サインアウトにページリードをリフレッシュ
しかし、非アクティブのいくつかの時間(約15分)の後、関係なく、ブラウザ/サイトを再起動しなかったか、ログが言う:
info: Microsoft.AspNet.Authentication.Cookies.CookieAuthenticationMiddleware:
AuthenticationScheme: Microsoft.AspNet.Identity.Application signed out.
AuthenticationScheme: Microsoft.AspNet.Identity.External signed out.
AuthenticationScheme: Microsoft.AspNet.Identity.TwoFactorUserId signed out.
これはの「セッション」のように見えます以前のASPでしたが、ここではセッションを使用していません。
これは私のローカル開発者のマシン、無IIS、5000ポートへの直接ケストレル接続され、ユーザがサインアウトすることを余儀なくなぜこれがdata-protection problem
ではないでしょうか?
更新は:私のStartup.cs
ファイル:
public void ConfigureServices(IServiceCollection services)
{
....
var identityBuilder = services
.AddIdentity<User, UserRole>(options =>
{
options.User.AllowedUserNameCharacters = null;
options.Cookies.ApplicationCookie.LoginPath = "/user/login";
options.Cookies.ApplicationCookie.LogoutPath = "/user/logout";
});
identityBuilder.Services
.AddScoped<IUserStore<User>, SportCmsDb>(serviceProvider => serviceProvider.GetService<SportCmsDb>())
.AddScoped<IRoleStore<UserRole>, SportCmsDb>(serviceProvider => serviceProvider.GetService<SportCmsDb>());
identityBuilder
.AddDefaultTokenProviders();
....
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
....
app.UseIdentity();
app.UseGoogleAuthentication(options =>
{
options.ClientId = Configuration["OAuth:Google:ClientId"];
options.ClientSecret = Configuration["OAuth:Google:Secret"];
});
....
SportCmsDb
がDbContext
であり、またIUserStore<User>
、IUserLoginStore<User>
、IUserEmailStore<User>
、IRoleStore<UserRole>
、IUserClaimStore<User>
を実装アップデート2
私はDETAを有効に(デバッグ)ロギングを行い、ユーザーがサインアウトしたときに、これより前に私のIUserStore<User>.FindByIdAsync
が呼び出されたことがわかりました。実際の/既存のユーザーIDと関数は、nullでない正しいユーザーを戻します。すべてが良いようです。しかし、私からロードされたUser
は "拒絶"され、サインアウトが強制されました。理由/場所を明らかにする追加のログメッセージはありません。
ConfigureServicesにservices.AddIdentityへの呼び出しを含めることができますか、それとも完全に削除しましたか? Startup.Configureメソッドでまだ 'app.UseIdentity();'を使用していますか? –
'Startup.cs'の部分で私のポストを更新しました – Dmitry