Робота з WebAuthenticationBroker Windows Runtime

Аутентифікація через треті сервіси широко використовується в сучасних додатках При цьому найбільш широко поширена аутентифікація через веб-сторінки Фейсбук, LiveId та інших соціальних сервісів Як правило, в таких системах надається механізм аутентифікації користувачів OAuth Це означає, що в додатку необхідно відкрити веб-сторінку сервісу, на якій користувач зможе ввести дані для аутентифікації в ньому Після успішного проходження аутентифікації додатком видаються сесійні дані, що дозволяють йому взаємодіяти з сервісом Такий підхід позбавляє користувача від необхідності створювати логін і пароль для кожної програми

Для таких сценаріїв в фреймворці створений спеціальний клас WebAuthenticationBroker, Який розташований в просторі імен WindowsSecurityAuthenticationWeb У додатку ми можемо вибрати для аутентифікації користувача протокол OAuth або OpenID, так як безліч соціальних мереж і різних ресурсів для обміну даними (наприклад, фотографіями) надають саме ці механізми взаємодії

При цьому розробнику необхідно:

1&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Використовувати операції, які не вимагають адреси повернення

2&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Отримати SID нашого застосування

3&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Зареєструвати додаток у постачальника сервісу, тобто на ресурсі,

аутентифікацію якого ми хочемо використовувати

Приклад використання цього класу для авторизації через соціальну мережу

Facebook показаний нижче:

/ / Необхідні дані для аутентифікації private static string FACEBOOK_DATA_LINK = https://graphfacebookcom/meaccess_token =; private static string FACEBOOK_URI = https://wwwfacebookcom/dialog/oauth; private static string FACEBOOK_REDIRECT_URI =

&quothttps://wwwfacebookcom/connect/login_successhtml" private static string CLIENT_ID =

“<Отримати на Facebook при реєстрації програми>“; private static string CLIENT_SECRET_KEY =

“<Отримати на Facebook при реєстрації програми>“; private static string RESPONSE_TYPE = token; private static string TOKEN_PATTERN = stringFormat ({0} # access_token = {1} & expires_in = {2},

FACEBOOK_REDIRECT_URI, &quot(&ltaccess_token&gt.+)&quot, &quot(&ltexpires_in&gt.+)&quot)

.

var requestUri = new Uri(stringFormat(&quot{0}client_id=

{1}&ampredirect_uri={2}&ampresponse_type={3}&ampdisplay=popup&ampscope= publish_stream&ampclient_secret={4}&ampscope=publish_stream, user_photos,user_location,offline_access&quot,

FACEBOOK_URI, CLIENT_ID, FACEBOOK_REDIRECT_URI, RESPONSE_TYPE, CLIENT_SECRET_KEY), UriKindRelativeOrAbsolute) var callbackUri = new Uri(FACEBOOK_REDIRECT_URI, UriKindRelativeOrAbsolute)

var auth = await WebAuthenticationBrokerAuthenticateAsync ( WebAuthenticationOptionsNone, requestUri, callbackUri)

switch (authResponseStatus)

{

case WebAuthenticationStatusErrorHttp:

/ / Обробка ситуації, коли не вдалося відкрити сторінку сервісу

break

case WebAuthenticationStatusSuccess:

var match = RegexMatch(authResponseData, TOKEN_PATTERN) var access_token = matchGroups[&quotaccess_token&quot]Value var expires_in = matchGroups[&quotexpires_in&quot]Value break

case WebAuthenticationStatusUserCancel:

/ / Ситуація коли користувач скасував аутентифікацію

break default:

break

}

Результат роботи WebAuthenticationBroker показаний на Рис 74

Рис 74

Інші можливості мережевої взаємодії

Як ми з вами дізналися, платформа Windows 8 надає широкий спектр можливостей по мережному взаємодії між клієнтським додатком і сервером, а також безліч варіантів реалізації сценаріїв такої взаємодії Але крім розглянутих у цій главі можливостей, операційна система дозволяє працювати з веб-сокетами і сокетами, керувати каналом мобільного підключення, використовувати TCP / UDP-зєднання та ін Детальніше про можливості, які ми не розглянули в цьому розділі, див на сайті MSDN (http://msdnmicrosoftcom/en-us/library/windows/apps/hh452751aspx)

Сергій Лутай, Сергій Байдачний, Windows 8 для C # розробників

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*