Приступаем к работе с проверкой подлинности в службах Mobile Services

Для знакомства с возможностями платформы  вы можетеактивировать Microsoft Azure бесплатно!

Тема практической работы: проверка подлинности пользователей служб Microsoft Azure Mobile Services из  приложения. Вы научитесь добавлять функцию проверки подлинности в проект быстрого запуска с помощью поставщика удостоверений, поддерживаемого службами Mobile Services. После успешной проверки подлинности и авторизации в службах Mobile Services на экране появится идентификатор пользователя.

Рассмотрим основные этапы проверки подлинности в приложении.

  1. Регистрация приложения для выполнения проверки подлинности и настройка служб Mobile Services
  2. Разрешение работать с таблицами лишь пользователям, прошедшим проверку,
  3. Добавление функции проверки подлинности в приложение

Эта практическая работа выполняется на основе проекта быстрого запуска служб Mobile Services. Сначала нужно пройти курс Приступаем к работе со службами Mobile Services.

Регистрация приложения для выполнения проверки подлинности и настройка служб Mobile Services

Чтобы проверить подлинность пользователя, зарегистрируйте приложение с помощью поставщика удостоверений. Затем зарегистрируйте в службах Mobile Services секретный ключ клиента, полученный от поставщика.

1. Войдите на портал управления Microsoft Azure, нажмите Mobile Services и выберите  мобильную службу.

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

Это значение потребуется поставщику удостоверений для регистрации приложения.

3. Выберите поддерживаемого поставщика удостоверений из списка ниже и выполните следующие шаги для регистрации приложения:

Не забудьте записать идентификатор клиента и секретный ключ, полученный от поставщика.

Советы по безопасности

Секретный ключ, полученный от поставщика, обеспечивает безопасность. Никому не передавайте его и не распространяйте вместе с приложением.

4. На Портале управления перейдите на вкладку Identity (Удостоверение), введите идентификатор приложения и секретный ключ, полученные от поставщика удостоверений, и нажмите Save (Сохранить).

Теперь мобильная служба и приложение готовы к работе с выбранным поставщиком проверки подлинности.

Разрешение работать с таблицами лишь пользователям, прошедшим проверку

1. На Портале управления перейдите на вкладку Data (Данные), затем выберите таблицу TodoItem.

2. Откройте вкладку Permissions (Разрешения). Установите для всех разрешений значение Only authenticated users (Только прошедшие проверку пользователи), затем нажмите кнопку Save (Сохранить). Теперь  для работы с таблицей TodoItem требуется проверка подлинности пользователя. Это поможет упростить скрипты (см. следующую практическую работу), поскольку при их выполнении будет запрещен доступ анонимным пользователям.

3. Откройте в Visual Studio 2012 Express для Windows Phone проект, созданный в курсе Приступаем к работе с Mobile Services.

4. Чтобы выполнить это приложение на основе быстрого запуска, нажмите клавишу F5. Убедитесь, что после этого появляется необработанное исключение с кодом состояния 401 (Недостаточно прав).

Ошибка вызвана тем, что приложение пытается войти в службы Mobile Services как неавторизованный пользователь, а для работы с таблицей TodoItem теперь требуется проверка подлинности.

Теперь мы научимся обновлять приложение: сначала оно будет проверять подлинность  и только затем запрашивать ресурсы мобильной службы.

Добавление функции проверки подлинности в приложение

1. Откройте файл проекта mainpage.xaml.cs и добавьте в класс 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";         }     MessageBox.Show(message); } }

Этот фрагмент кода создает переменную для хранения текущего пользователя и метод проверки подлинности. Проверка подлинности пользователя выполняется по учетным данным Facebook.

Примечание

При использовании другого поставщика удостоверений необходимо заменить Facebook в строке MobileServiceAuthenticationProvider указанного выше кода на microsoftaccount, twitter или google.

2.  Удалите или закомментируйте существующий метод OnNavigatedTo, переопределите и замените его методом, который обрабатывает событие Loaded (Загружено) для страницы.

async void MainPage_Loaded(object sender, RoutedEventArgs e) {     await Authenticate();     RefreshTodoItems(); }

Этот метод вызывает новый метод Authenticate (Проверка подлинности).

3.  Замените конструктор MainPage следующим кодом:

// Constructor public MainPage() {     InitializeComponent();     this.Loaded += MainPage_Loaded; }

Этот конструктор регистрирует обработчик события Loaded (Загружено).

4.  Чтобы выполнить приложение и войти в него с помощью поставщика удостоверений, нажмите клавишу F5.

Если вход выполнен успешно, приложение будет работать без ошибок. Вы можете посылать запросы службе Mobile Services и обновлять данные.