Ich benutze RC1 Bits und externe (Google) Authentifizierung, keine Identity.EntityFramework.ASP.NET 5 Identity 3 Benutzer werden nach einiger Zeit abgemeldet
Während der Anmeldung habe ich 'Remember me' gesetzt.
Der angemeldete Benutzer überlebt den Neustart des Browsers (ich sehe, dass der Cookie in 14 Tagen abläuft) und der Neustart der Website.
Aber nach einiger Zeit der Inaktivität (ca. 15 min), wurden ganz gleich Browser/Website neu gestartet oder nicht, Seite führen erfrischend zu dem Abmelden meldet sich sagt:
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.
Das ist wie „Sitzungen“ sieht in vorherige ASP, aber ich verwende keine Sitzungen hier.
Dies ist meine lokalen Entwickler-Maschine, keine IIS, direkte Kestrel Verbindung zum 5000-Port, so dass dies nicht data-protection problem
Warum Benutzer abzumelden gezwungen?
aktualisieren: meine Startup.cs
Datei:
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
ist DbContext
und implementiert auch IUserStore<User>
, IUserLoginStore<User>
, IUserEmailStore<User>
, IRoleStore<UserRole>
, IUserClaimStore<User>
aktualisieren 2
I aktiviert Deta iloged (debug) Protokollierung und festgestellt, dass, wenn Benutzer abgemeldet werden - vorher mein IUserStore<User>.FindByIdAsync
aufgerufen wird. Mit realer/existierender Benutzer-ID und Funktion, die den richtigen Nicht-Null-Benutzer zurückgibt. Alles scheint gut zu sein. Aber meine loaded-from-db User
ist "abgelehnt" und gezwungen, sich abzumelden. Es gibt keine zusätzlichen Protokollmeldungen, die den Grund/den Ort aufdecken können.
Konnten Sie Ihren Anruf zu services.AddIdentity in ConfigureServices einschließen, oder haben Sie das vollständig entfernt? Verwenden Sie noch 'app.UseIdentity();' in der Startup.Configure-Methode? –
Meine Post mit Teilen von 'Startup.cs' aktualisiert. – Dmitry