2013-04-11 2 views
0

Я пытаюсь узнать, как делать роли в ACS. У меня есть Windows Store App (не веб-сайта :-), и мне нужно Администратор и через Член ролей - но найти очень даже основную документацию или обучающие что-то вроде этого, оказывается, очень трудно для меня.Добавление ролей в MobileServices в Azure (ACS)

Все, что я нашел, это куча ссылок на материалы ASP.NET или Azure Websites, которые я не могу использовать, поскольку приложение Store не является веб-сайтом и не использует ASP.NET.

У меня есть Azure Mobile Services для моего приложения Windows Store. Есть ли какая-то информация, которую вы знаете об этом, может быть полезной?

Я удивлен, что роли, похоже, не рассматриваются в разделе образцов/ссылок/учебных пособий в любом месте сайта Azure (если только я не пропустил его - несколько раз).

Возьмите, к примеру, этот сценарий. Здесь, на вкладке Сценарий Портала управления, вставить текст в таблицу, связанные с текущего пользователя (с помощью функции insert):

var SendGrid = require('sendgrid').SendGrid; 

function insert(item, user, request) { 
     item.userId = user.userId; 
     request.execute(
      { 
       success: function() { 
        request.respond(); 

        // Send email in the background. 
        sendEmail(item); 
       } 
      } 
     ); 
} 

Приведенный выше код вставляет текст в таблицу, а затем отправляет электронное письмо этому пользователю. Но, как я мог бы адаптировать этот код, так что это было бы (псевдо-код):

if item.text == "administrator" 
    then insert userid into admin column 
else 
    then insert userid into member column 

Любая помощь на всех будет высоко оценен.

+1

Роль - это просто требование, и ACS - все претензии, но если вы используете мобильные службы, вы не (AFAIK), проходящие через ACS, поэтому у вас нет возможности перевести, например, требование UserID в заявку на роль. Какой провайдер идентификации вы используете для Azure Mobile Services? и поддерживаете ли вы роли/назначения или ожидаете, что это часть каталога, который вы используете для auth? –

+0

@ JimO'Neil Я использую учетную запись Microsoft (официально известную как Live ID) как поставщик ID.Я не против того, чтобы сам выполнять эти роли, пока это не ручной процесс (это можно сделать в коде). –

+1

хорошо, вы можете добавить таблицу ролей в свою базу данных WAMS (вы можете прикрепить ее к любому инструменту клиента SQL Server), а затем в своих сценариях вы можете использовать объект mssql для добавления соединения в свою таблицу ролей на user.userID, чтобы приходит, чтобы получить свою роль (и). Это означает, что вам нужно будет заполнять роли на основе непрозрачного идентификатора пользователя, который вы получаете из Live или создаете в процессе регистрации для своего приложения, чтобы настроить эту таблицу - зависит от того, кто контролирует регистрацию: «вы» или это самообслуживание. –

ответ

1

Это не совсем ответ, но он слишком длинный для комментария, и я думаю, что это действительно важно.

Прежде всего, при использовании аутентификации из Windows Azure Mobile Services, вы не используяWindows Azure Access Control Service. Таким образом, нет Active Directory, при использовании мобильных сервисов нет (дополнительных) претензий. Это должно быть очень ясно, потому что я вижу постоянное непонимание и путаницу. @Joey все еще просит, и ссылается на ACS как поставщика федерации для своей заявки, которая не является случаем, если он полагается на механизм аутентификации мобильных служб.

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

Однако назначение ролей в целом является интересной темой и на самом деле не является частью какого-либо учебника или документации. И это не является частью такого, потому что назначение ролей является частью бизнес-логики самого приложения, а не частью службы аутентификации. Существует очень похожий вопрос here, который, однако, еще раз не отвечает подробно, как назначать роли. Основанием и основной проблемой для решения является: How to assign administrator role. Все остальное можно решить, добавив соответствующий пользовательский интерфейс для администраторов приложений. Тем не менее, этот вопрос не подлежит короткому ответу SO.