Я создал универсальное приложение и лазурные мобильные сервисы. Я следовал руководству по добавлению аутентификации учетной записи Microsoft, как это представлено на веб-сайте Azure. Для этой цели я использую новейший Live SDK.
На стороне клиента я использую этот код, который более или менее не соответствует учебнику:
const string ReferralUrl = "https://my-url-here.azure-mobile.net/";
static MobileServiceClient MobileService = new MobileServiceClient(
"https://my-url-here.azure-mobile.net/",
"my key");
MobileServiceUser _user;
private LiveConnectSession _session;
private async Task Authenticate()
{
var authClient = new LiveAuthClient(ReferralUrl);
while (_session == null)
{
var result = await authClient.LoginAsync(new[] { "wl.basic" });
if (result.Status == LiveConnectSessionStatus.Connected)
{
_session = result.Session;
var client = new LiveConnectClient(result.Session);
var meResult = await client.GetAsync("me");
return;
}
else
{
break;
}
}
_session = null;
}
public async Task<bool> Login()
{
try
{
await Authenticate();
_user = await MobileService
.LoginWithMicrosoftAccountAsync(_session.AuthenticationToken);
}
catch (Exception ex)
{
//Debug.WriteLine(ex.Message);
//return false;
}
return true;
}
Для этого приложения были проверены следующие факты:
- Запись в магазине создана
- Запись в магазине была связана с универсальным приложением (это было выполнено для проектов win8.1 и wp8.1)
- The store app has the following settings:
- mobile or desktop: yes
- джвт: да
- безопасность: активирована
- URL-адрес перенаправления: установлен на https://my-url-here.azure-mobile.net/login/microsoftaccount
На портале Azure на вкладке «Идентификация» были введены и сохранены идентификатор и секрет клиента. Однако package-SID отсутствует (это тоже не упоминается в туториале).
Я скачал проект службы, созданный с помощью мобильного сервиса, и добавил его в свое решение. Кроме того, я добавил флаг SetIsHosted(true) в класс WebApiConfig. Наконец, я добавил атрибут AuthorizeLevel в TodoItemController и установил для него уровень пользователя. Служба успешно опубликована на Azure.
Когда я запускаю свое приложение и вызываю Login, это приводит к исключению 401. Неважно, запускаю ли я его локально или на хостинге.
Любые идеи?