SetThreadPricipal в AppDomain универсального приложения Windows невозможен - PullRequest
0 голосов
/ 27 июня 2019

Я хочу закодировать приложение авторизации и аутентификации на основе ролей в UWP и использовать IPrincipal, IIdentity Interface.Я уже использую интерфейсы WPF и все отлично работает.В UWP это не так.

Я хочу установить ThreatPrincipal как customPrincipal в CurrentDomain, переопределив метод OnLaunced в App.xaml.cs.(В WPF я делаю это в методе OnStartup) Но при доступе к ThreadPrincipal это значение Null.Могу ли я использовать IPrincipal в UWP?Является ли OnLaunched подходящим местом для этого?Что я могу сделать, чтобы получить эту работу?

Спасибо за помощь.

protected override void OnLaunched(LaunchActivatedEventArgs e)
{
  ...

  if (e.PrelaunchActivated == false)
  {
    ...
  }

  CustomPrincipal customPrincipal = new CustomPrincipal();
  AppDomain.CurrentDomain.SetThreadPrincipal(customPrincipal);
  var cp = Thread.CurrentPrincipal; 

  // I also tried this for debugging

  currentDomain = AppDomain.CurrentDomain;

  AppDomain.CurrentDomain.SetThreadPrincipal(new GenericPrincipal(new   GenericIdentity("NewUser"), null));

  IPrincipal cp1 = Thread.CurrentPrincipal;    
}




// In both cases cp and cp1 are null. No exceptions are thrown when calling SetThreadPrincipal
...