StoreContext.GetAppLicenseAsync() возвращает false для активной подписки в MSIX CLI.C#

Место общения программистов C#
Ответить
Anonymous
 StoreContext.GetAppLicenseAsync() возвращает false для активной подписки в MSIX CLI.

Сообщение Anonymous »

Я создаю оболочку WinRT CLI на C#, которая проверяет, есть ли у пользователя активная надстройка подписки Microsoft Store. Этот интерфейс командной строки вызывается из приложения Electron + React.js с использованием аргументов командной строки и возвращает true или false в зависимости от статуса лицензии.
Проблема
Команда CheckSubscription неправильно возвращает false, даже если вошедший в систему пользователь имеет активную подписку на надстройку.
Ниже приведен фрагмент кода

Код: Выделить всё

private static async Task HandleCheckSubscriptionCommand(string[] args)
{
string addonId = args[1];
var context = StoreContext.GetDefault();
var license = await context.GetAppLicenseAsync();

foreach (var kvp in license.AddOnLicenses)
{
var addOnLicense = kvp.Value;
if (addOnLicense.SkuStoreId.Equals(addonId, StringComparison.OrdinalIgnoreCase))
{
bool isValid = addOnLicense.IsActive && addOnLicense.ExpirationDate > DateTimeOffset.UtcNow;
Console.WriteLine(isValid ? "true" : "false");
return;
}
}

Console.WriteLine("false");
}
Что может привести к тому, что GetAppLicenseAsync() вернет лицензию на подписку как неактивную или отсутствующую, даже если пользователь приобрел ее через Магазин?
Я также сделал следующее:
  • Приложение CLI в пакете MSIX (Windows 10+), оболочка включена и успешно запускается приложением
  • Опубликовано в Microsoft Store (исключено из списка для тестирования)
  • Использование StoreContext.GetAppLicenseAsync()
  • Дополнение подписки опубликовано и доступно для тестирования
  • Идентификатор дополнения правильно разрешается через API


Подробнее здесь: https://stackoverflow.com/questions/796 ... on-in-msix
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»