2010-02-01 8 views
1

Я пишу приложение ASP.net, которое использует Windows Identity Foundation. Мое приложение ASP.net использует аутентификацию на основе утверждений с пассивным перенаправлением на службу маркеров безопасности. Это означает, что, когда пользователь обращается к приложению, они автоматически перенаправляются в службу маркеров безопасности, где они получают токен безопасности, который идентифицирует их для приложения.Windows Identity Foundation: как получить новый токен безопасности в ASP.net

В ASP.net маркеры безопасности хранятся как файлы cookie.

Я хочу, чтобы пользователь мог нажать на мое приложение, которое удалит куки-файл и перенаправит их в службу маркеров безопасности, чтобы получить новый токен. Короче говоря, упростите выход из системы и войдите в систему как другой пользователь. Я пытаюсь удалить cookie-код, содержащий токен, в коде, но он как-то сохраняется.

Как удалить токен, чтобы пользователь мог снова войти в систему и получить новый токен?

ответ

5

Я нашел решение. Выражаясь кратко:

Dim smartWsFederationAuthenticationModule As _ 
     Microsoft.IdentityModel.Web.WSFederationAuthenticationModule = _ 
     HttpContext.Current.ApplicationInstance.Modules("WSFederationAuthenticationModule") 
    smartWsFederationAuthenticationModule.SignOut(True) 

Смотрите здесь для получения дополнительной информации: http://garrettvlieger.com/blog/2010/03/refreshing-claims-in-a-wif-claims-aware-application/

Я также вижу, что я могу получить дескрипторы некоторых других частей каркаса WIF это было, как хорошо. Это определенно стоит прочитать.

0

Cookies немного странные. Они управляются браузером, и нет «метода» для их удаления. Просто удаление их из объектов Request или Response на стороне сервера не удаляет их из браузера на стороне клиента.

Чтобы удалить «cookie», вы должны установить дату истечения срока годности.

См: http://msdn.microsoft.com/en-us/library/ms178195.aspx

+0

Я пытался удалить cookie таким образом, но похоже, что какой-то модуль в WIF-инфраструктуре не позволяет этого. –

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