Создал приложение mvc5 с Identity2, используя логин Google (практически пустое приложение, с включенным материалом Google)
Как мне настроить его для использования файлов cookie сеанса, чтобы они истекали при закрытии браузера. Приложение будет использоваться студентами, которые могут менять места в горячем режиме, поэтому мне нужно, чтобы срок действия входа истекал при закрытии браузера.
Я прочитал статью SO, в которой подразумевается, что это значение по умолчанию, но когда я закрываю браузер и возвращаюсь на сайт, он запоминает логин Google.
Изменить
Извините, что разорвал пузырь, но это не дубликат.
Он воспроизводится в Chrome после изменения настроек в предполагаемом «ответе», а также воспроизводится в IE... Это проблема входа в Asp.net Identity 2 + Google, а не проблема Chrome.
Изменить
Добавление файла аутентификации запуска для справки по установке
using System;
using System.Configuration;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin;
using Microsoft.Owin.Security.Cookies;
using Microsoft.Owin.Security.Google;
using Owin;
using StudentPortalGSuite.Models;
namespace StudentPortalGSuite
{
public partial class Startup
{
// For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
public void ConfigureAuth(IAppBuilder app)
{
// Configure the db context, user manager and signin manager to use a single instance per request
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
// Enable the application to use a cookie to store information for the signed in user
// and to use a cookie to temporarily store information about a user logging in with a third party login provider
// Configure the sign in cookie
app.UseCookieAuthentication(
new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes( 30 ),
regenerateIdentity: ( manager, user ) => user.GenerateUserIdentityAsync( manager )
)
},
});
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
// Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process.
app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));
// per https://docs.microsoft.com/en-us/aspnet/mvc/overview/security/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on - EWB
//dev-jcsn email
app.UseGoogleAuthentication( new GoogleOAuth2AuthenticationOptions()
{
ClientId = "...",
ClientSecret = "..."
} );
//});
}
}
}
EDIT Вариант использования, который я пытаюсь исправить, заключается в том, что, поскольку наше приложение используется в классе, этот ученик A закрывает свой браузер вместо выхода из системы, а затем следующий пользователь пытается войти в систему. В нынешнем виде они автоматически вошли в учетную запись пользователя А.
Я также был бы готов к 100% выходу пользователя из системы при перенаправлении на страницу входа, но все способы, которые я пробовал, не работают.