2014-09-01 4 views
4

Я использую MVC 4 с идентификатором 2.0, и у меня есть на моем сайте (из коробки) «Запомнить меня», и я хочу отключить этот вариант и иметь один из этих двух вариантов на моем сайте:MVC identity || Отключить все файлы cookie и «запомнить меня»?

1.user нужно будет войти (введите имя пользователя & пароль) каждый раз, когда он использует мой сайт.

2.user необходимо будет входить в систему каждый раз, когда , но сайт запомнит его в течение 30 минут и не заставит его войти в систему в течение этого периода времени (30 минут в нашей ситуации).

Как я могу выполнить эти 3 вещи?

отключить я просто комментарий флажок на странице входа я думаю, что это будет делать трюк :)

EDIT:

Когда я установить это:

app.UseCookieAuthentication(new CookieAuthenticationOptions 
     { 
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
      LoginPath = new PathString("/Logon/LogOn"), 
      ExpireTimeSpan = TimeSpan.FromMinutes(30), 
     }); 

Мне нужно прокомментировать/удалить этот код оттуда:

app.UseCookieAuthentication(new CookieAuthenticationOptions 
      { 
       AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
       LoginPath = new PathString("/Account/Login"), 
       Provider = new CookieAuthenticationProvider 
       { 
        OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
         validateInterval: TimeSpan.FromMinutes(30), 
         regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) 
       } 
      }); 

      app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); 
+1

Этот вопрос достаточно широк и относится к вещам, которые очень часто (и, следовательно, хорошо документированы) - какие исследования имеют вы сделали до сих пор? Что вы пробовали? Где вы боретесь? –

+0

Я борюсь в области, позволяющей пользователю войти на мой сайт, но когда пользователь выходит из сайта (закрыть окно и т. Д.), Ему нужно снова войти в систему ... как я могу это сделать? установленное время куки-файлов не очень помогло мне. – Ron

ответ

2

Для отключения «Запомнить меня» передать false в качестве последнего параметра в

await userManager.SignInAsync(AuthenticationManager, user, false); 

И снимите этот флажок, с вашей точки зрения.

Чтобы сделать печенье истекает через 30 минут, в вашем Auth.Config установить ExpireTimeSpan на 30 минут

app.UseCookieAuthentication(new CookieAuthenticationOptions 
{ 
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
    LoginPath = new PathString("/Logon/LogOn"), 
    ExpireTimeSpan = TimeSpan.FromMinutes(30), 
}); 
+0

Так что, если я вообще не хочу куки, так что веб-приложение не запомнит любого пользователя, я просто установил значение expiretimespan на -1 или 0? Спасибо за ваши ответы – Ron

+0

и, пожалуйста, посмотрите мои изменения, оставьте там код или удалите его? Я думаю, что код просто проверяет, поэтому я не буду прерывать. Что вы думаете trialmax? – Ron

+0

Относительно 'expiretimestamp'. Если вы установите значение 0, файлы cookie не будут установлены вообще, и ваши пользователи не смогут вообще войти в систему. – trailmax

Смежные вопросы