2016-08-01 2 views
1

Как я могу зарегистрировать , указанный пользователь из моего приложения mvc 4. Я предпочитаю вывести этого пользователя с его/ее user.id ...Выйти из указанного пользователя asp.net mvc

Спасибо.

+0

Под «указанным пользователем», вы имеете в виду пользователя, отличного от того, который в настоящее время вошел в систему? –

+0

@ oj-raqueño да, например, я являюсь администратором веб-сайта, и я хочу вывести указанного пользователя (участника) веб-сайта. –

+2

Ну, если вы используете аутентификацию с помощью форм, вы не можете просто выгнать его. Ему нужно, чтобы его печенье закончилось. Что вы можете сделать, так это короткое время жизни и время блокировки этого пользователя (если вы используете идентификатор ASP.NET). Другой способ с помощью токенов - отменить его доступ к токену. Каков ваш процесс аутентификации? – gdyrrahitis

ответ

1

Ну, ваша проблема, основанная на ваших комментариях, заключается в изменении/обновлении/добавлении роли человека, но вы хотите отразить это, выгрузив его. Из-за этого добавления/изменения новая роль не отражается в cookie пользователя, только в базе данных. Именно по этой причине он должен выйти из системы и снова войти в систему, чтобы эта модификация имела место.

По существу, если вы используете аутентификацию печенья, как насчет попробовать это в вашем Startup.Auth.cs:

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(1), 
      regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) 
    } 
}); 

Использование OnValidateIdentity будет проверять запросу пользователя каждые validateInterval минут, так что в коде выше куки будет обновляться каждый 1 минута. Если вы укажете TimeSpan.FromMinutes(0), это означает, что файл cookie будет обновляться по запросу каждого пользователя.

Пожалуйста, проверьте также следующие сообщения и ответы на StackOverflow, чтобы решить эту проблему.

Надеется, что это поможет.