Сохранение имени пользователя в Silverlight 4 - PullRequest
1 голос
/ 23 ноября 2010

У меня есть приложение Silverlight 4, которое связывается с WCF-службой. Пользователь должен войти в систему для доступа к службам WCF.

Теперь я хочу запретить пользователю повторно вводить имя пользователя и пароль каждый раз, когда он запускает приложение silverlight. Каков наилучший способ достичь этого? Я думал о файлах cookie, чтобы сохранить имя пользователя / (хэшированный) пароль, но файлы cookie не могут обрабатывать Unicode, а пароль сохраняется как Unicode.

Что бы вы предложили?

Заранее спасибо,
Frank

Ответы [ 4 ]

2 голосов
/ 23 ноября 2010

Ну, вы можете сделать что-то вроде первого входа в систему, сохранить его учетные данные в зашифрованном виде в изолированном хранилище. Когда SL начинает, поднимите это и передайте в сервис для проверки, а затем войдите в систему.

1 голос
/ 23 ноября 2010

Другой подход - сохранить GUID (если имеется).

Например, если схема вашей базы данных выглядит примерно так ...

user_id (UniqueIdentifier, primary key)
username (varchar)
password_hash (varchar)
password_salt (varchar)

Тогда я бы сохранилuser_id и username в IsolatedStorage .Когда пользователь возвращает эти переменные, они перейдут в специальную функцию в вашей службе WCF для аутентификации.

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

1 голос
/ 23 ноября 2010
0 голосов
/ 23 ноября 2010

Поскольку это приложение Silverlight, почему бы просто не позволить ASP.NET обработать аутентификацию для вас? Вы все еще можете защитить свои службы WCF, чтобы работать только с аутентифицированным пользователем. Вот отличная статья на эту тему.

EDIT

Следует отметить, что в этой статье автор добавляет пользовательские заголовки сообщений для имени пользователя / пароля. Я просто заменил эту логику проверкой подлинности HttpContext.Current.User, и если да, то разрешил доступ к службе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...