Если это приложение для браузера Silverlight, почему бы вам не рассматривать его как обычный веб-сайт? Поток будет что-то вроде
- пользователя просматривать ваше приложение
- Перед тем, как отправить XAP, ваш сайт показывает список провайдеров удостоверений. Пользователь выбирает один и перенаправляется на вход.
- Пользователь регистрируется, и вы получите токен, отправленный в ваше приложение (это набор социальных игр). Хорошей новостью является то, что Social Gaming Toolkit уже обеспечивает интеграцию с ACS на веб-сайте, поэтому работы не так много. Пользователь получит cookie, сгенерированный Windows Identity Foundation, с претензиями внутри (на данный момент не используется Silverlight).
- Теперь вы отправляете приложение XAP и приложение Silverlight загружается
- Отныне каждый запрос, сделанный от XAP к вашему приложению (который будет иметь набор инструментов для социальных игр), будет зависеть от принципала, потому что файл cookie WIF отправлен в каждый запрос.
Если вы хотите немного изменить пользовательский интерфейс и вместо того, чтобы показывать список поставщиков идентификаторов на обычной странице HTML/asp.net, вы хотите сделать это из приложения Silverlight (например, в лаборатории Windows Phone). Тогда вам нужно будет использовать конечную точку ACS JSON, которая перечисляет ваши поставщики удостоверений из вашего приложения Silverlight.
Инструментарий уже делает это, и вы можете извлечь основные идеи:
https://github.com/WindowsAzure-Toolkits/wa-toolkit-games/blob/master/code/SocialGames.Web/Services/AuthService.cs#L29
Просьба, чтобы получить список провайдеров удостоверений в формате JSON выглядит следующим образом:
https://your_servicenamespace.accesscontrol.windows.net/v2/metadata/IdentityProviders.js?protocol=wsfederation&realm=your_application_realm&version=1.0&context=some_contextual_data_youwanttokeepacrossredirects "
И, наконец, эта лаборатория также должна помочь вам
http://msdn.microsoft.com/en-us/IdentityTrainingCourse_SilverligthAndIdentity2010
FWIW, как работает Windows Phone, используется конечная точка уведомления JavaScript в ACS, которая отличается от описанной выше.
Поток нечто вроде
- Телефон показывает параметры входа (Facebook, LiveID и т.д.)
- пользователь нажимает на одну из них
- Пользователь перенаправляется на ACS, а затем перенаправляется на выбранный поставщик идентификационных данных
- Пользователь регистрируется и некий токен отправляется обратно в ACS (в зависимости от поставщика удостоверений)
- На данный момент ACS отобразит HTML-страницу с небольшим количеством JavaScript. Это даст указание браузеру (который размещен на вашем телефоне Windows) отправлять внешний сигнал с полезной нагрузкой (в этом случае токен).
window.external.Notify('THE_TOKEN');
- телефон приложение обнаружит уведомление и захватывает маркер
Я не знаю, как JavaScript уведомит механизм будет работать на Silverlight приложения в браузере, потому что вы уже в браузере. Но если вы попробуете это, держите нас в курсе.
Matias
Благодарим за ваше терпение! –
Наверное, я не против, если ACS является внешним, как в социальном игровом пакете или внутреннем для silverlight. Единственное, что мне нужно знать, - это как получить CRUD-функции от silverlight, используя аналогичную модель, чем использовать учебник по телефону Windows. Я * думаю * Я почти понимаю логику, которую вы объясняете, но можете ли вы подробно остановиться на извлечении основных идей из authservice? Все, что я хочу, это сделать социальную игру, которая будет иметь частные и публичные базы данных, которые защищены ACS. Какой проект Silverlight мне нужен, чтобы начать? какие ссылки следует использовать? –