2012-06-29 2 views
0

У меня есть два разных приложения: один - в Silverlight, а другой - в веб-приложении.Одиночный вход для приложения Silverlight 4 и веб-приложения

Мне нужен единый вход для обоих.

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

Оба приложения имеют разные базы данных, но имя пользователя и пароль одинаковы для обоих.

Я использую службы WCF для приложения silverlight.

Может ли кто-нибудь предложить решение?

ответ

0

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

0

Я предполагаю, что вы используете ASP.NET и Forms/другую аутентификацию, а приложение Silverlight - с того же веб-сервера.

первый взгляд на этой ссылке и шаблона приложения Silverlight Бизнес из Visual Studio: HTTP: //msdn.microsoft.com/en-us/library/ee942449 (v = VS.91) .aspx

A более ручной подход может включать в себя запись службы WCF, которая возвращает или устанавливает «UserToken», который вы храните в сеансе при успешном входе в систему.

// the wcf service needs these attributes 
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] 

// a manual approach: successful login, create a webservice method to call from Silverlight to set the authentication 
HttpContext.Current.Session.Add("currentUserToken", userToken); 
FormsAuthentication.SetAuthCookie(this.EmailAddressUserControl1.EmailAddressTextBox.Text, false); 

Аутентификация с помощью форм будет заботиться о входе вас на ASP.Net запросов, но вы будете иметь для обработки времени ожидания сеанса одна служба запрашивает самостоятельно.

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