Windows Azure Mobile Services. Краткое руководство по разработке. Часть 3. Аутентификация.

Windows Azure Mobile Services. Краткое руководство по разработке. Часть 3. Аутентификация.

Оглавление:
Часть 1. Введение.
Часть 2. Хранение данных в Mobile Services
Часть 3. Аутентификация.
Часть 4. Push-уведомления.


В этой части рассмотрены вопросы аутентификации в мобильном сервисе из вашего приложения.

Регистрация приложения для аутентификации и настройка мобильного сервиса

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

Войдите на портале управления, перейдите на MobileServices и выберите ваш мобильный сервис (рисунок 1).

clip_image002

Рис. 1. Портал управления Windows Azure

Перейдите на вкладку Dashboard и запишите значение Site URL (рисунок 2).

clip_image004

Рис. 2. Портал управления Windows Azure

Настроим аутентификацию через Facebook. Для этого понадобится аккаунт Facebook.

Перейдите на страницу Facebook Developers и войдите в систему.

Нажмите Apps, затем Create New App (рисунок 3).

clip_image006

Рис. 3. Портал Facebook

Выберите уникальное имя для приложения и нажмите OK(рисунок 4), что зарегистрирует приложение на Facebook.

clip_image008

Рис. 4. Портал Facebook

В Select how your app integrates with Facebook разверните Website with Facebook Login,введите URL мобильного сервиса в поле Site URL и нажмите Save Changes (рисунок 5).

clip_image010

Рис. 5. Портал Facebook

Запишите значения App ID и App Secret (рисунок 6).

clip_image012

Рис. 6. Портал Facebook

Аутентификация на портале настроена.

Перейдите на портал управления Windows Azure и во вкладке Identity введите записанные значения App ID и App Secret, после чего нажмите Save(рисунок 7).

clip_image014

Рис. 7. Портал управления Windows Azure

Ограничения прав аутентифицировавшихся пользователей

На портале управления во вкладке Data выберите таблицу TodoItem(рисунок 8).

clip_image016

Рис. 8. Портал управления Windows Azure

На вкладке Permissions определите все права в Only authenticated users и нажмите Save(рисунок 9).

clip_image018

Рис. 9. Портал управления Windows Azure

Откройте проект из предыдущей части и запустите его. Убедитесь, что при запуске приложения выдается ошибка 401 (Unauthorized). Это происходит из-за того, что теперь таблица TodoItem доступна только аутентифицировавшимся пользователям.

Добавьте в файл mainpage.xaml.cs:

using Windows.UI.Popups;

Добавьте в класс MainPage:

private MobileServiceUser user;

private async System.Threading.Tasks.Task Authenticate()

{

while (user == null)

{

string message;

try

{

user = await App.MobileService

.LoginAsync(MobileServiceAuthenticationProvider.Facebook);

message =

string.Format("You are now logged in - {0}", user.UserId);

}

catch (InvalidOperationException)

{

message = "You must log in. Login Required";

}

var dialog = new MessageDialog(message);

dialog.Commands.Add(new UICommand("OK"));

await dialog.ShowAsync();

}

}

В этом коде создается переменная для хранения текущего пользователя и метод для обработки процесса аутентификации.

Замените содержимое метода OnNavigatedTo:

protected override async void OnNavigatedTo(NavigationEventArgs e)

{

await Authenticate();

RefreshTodoItems();

}

Запустите приложение и аутентифицируйтесь в выбранном провайдере идентификации.

Существует возможность использовать серверные скрипты для авторизации аутентифицировавшихся пользователей и выдачи им прав на доступ к данным в Windows Azure Mobile Services.

Регистрация скриптов

Перейдите на портал управления Windows Azure и на вкладке MobileServices выберите ваше приложение (рисунок 10) .

clip_image019

Рис. 10. Портал управления Windows Azure

На вкладке Data выберите таблицу TodoItem (рисунок 11).

clip_image020

Рис. 11. Портал управления Windows Azure

Нажмите Script и выберите Insert (рисунок 12).

clip_image022

Рис. 12. Портал управления Windows Azure

Замените код и нажмите Save.

function insert(item, user, request) {

item.userId = user.userId;

request.execute();

}

Скрипт добавляет в сущность значение userId, которая является идентификатором аутентифицировшегося пользователя, перед тем, как она вставляется в таблицу.

Замените код операции Read:

function read(query, user, request) {

query.where({ userId: user.userId });

request.execute();

}

Запуск приложения

Откройте проект, созданный ранее, и запустите его, после чего войдите в систему, используя ваши учетные данные. Обратите внимание на изменения в интерфейсе.

Leave a Comment
  • Please add 2 and 3 and type the answer here:
  • Post
Wiki - Revision Comment List(Revision Comment)
Sort by: Published Date | Most Recent | Most Useful
Comments
Page 1 of 1 (1 items)
Wikis - Comment List
Sort by: Published Date | Most Recent | Most Useful
Posting comments is temporarily disabled until 10:00am PST on Saturday, December 14th. Thank you for your patience.
Comments
Page 1 of 1 (1 items)