2010-05-19 2 views
0

Я разрабатываю приложение silverlight 3 с использованием служб WCF RIA. Для проверки подлинности я использую класс AuthenticationBase. Поскольку я понимаю это под капотом, это использует библиотеки аутентификации ASP .NET.Как хранить состояние в Silverlight WCF RIA Services

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

WebContextBase.Current.Authentication.LoadUser()

И он идет обратно в службу аутентификации (работает на сервере) и выясняет, является ли Я все еще зашел на сайт. Если произойдет тайм-аут, ответ будет отрицательным. Если это так, я могу показать диалог входа в систему.

Проблема, которую я хочу решить, заключается в том, что служба аутентификации использует пароль, и я никогда не смогу восстановить этот пароль еще раз.

Если пользователь заходит на сайт, я хочу сохранить пароль на сервере и вернуть токен на клиентскую сторону, чтобы соответствовать этому паролю. У меня есть другие службы на стороне сервера, которым нужен этот пароль.

Итак, где я должен хранить этот пароль на сервере? Как это можно сделать? Как состояние проверки подлинности WCF?

+0

Возможно ли реализовать статический класс? Это то, что я пробовал и, похоже, работает. Я позаботился о том, чтобы использовать блокировку, чтобы данные не могли быть изменены более чем одним клиентом за раз. – peter

ответ

1

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

Вы можете использовать изолированное хранилище и хранить данные, но, как правило, хранение паролей - это все поражения, не так ли?

+0

Они не являются неавторизованным пользователем. Они уже прошли аутентификацию, и их сеанс должен оставаться открытым в течение 20 минут. Это точно так же, как если вы выйдете из gmail, не нажимая ссылку «выйти», и сразу вернитесь, вам не придется входить в систему. Это со временем истечет. – peter

+0

Так работают стандартные страницы ASP.NET. Пользователь будет оставаться аутентифицированным в течение 20 минут. – peter

+0

Также токен, который я передаю клиенту, хранится в файле cookie, и это истекает через 20 минут. – peter

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