1

Я не знаю точно, как это объяснить, но здесь, в основном, как моя проблема может быть воспроизведена:My.User.IsAuthenticated ошибка в WPF

  • Создание проекта WPF приложений Windows в VB.NET (не создавайте, просто продолжайте читать это, если вы не верите мне ...)
  • Щелкните заголовок окна, чтобы создать обработчик событий Window.Loaded и перейти к нему.
  • Добавьте следующий ивент-обработчик:
    My.User.CurrentPrincipal = New GenericPrincipal(_
    New GenericIdentity("username"), Nothing)
    Dim authenticated = My.User.CurrentPrincipal.IsAuthenticated
    MessageBox.Show(authenticated) 'True'
  • Вернитесь в окне конструктора и добавить кнопку в Window1.
  • Нажмите кнопку, чтобы создать обработчик события Click и перейдите к нему.
  • Добавьте следующее содержимое к нему:
    Dim authenticated = My.User.CurrentPrincipal.IsAuthenticated
    MessageBox.Show(authenticated) 'False'
  • Запустите приложение, видеть результаты
  • ПОЧЕМУ НА ЗЕМЛЕ ЭТО ЛОЖЬ СЕЙЧАС!?!?

UPDATE: Я сообщил об ошибке по адресу: http://connect.microsoft.com/WPF/feedback/ViewFeedback.aspx?FeedbackID=513731, пожалуйста, голосовать или опубликовать обходной и обновить меня, когда вы сделаете это, спасибо заранее.

Любые обходные пути будут приветствованы!

ответ

1

Я надеялся найти исчерпывающее объяснение этого поведения, но пока нет такой удачи. Я действительно думаю, что могу предложить вам обход, который должен назначить настраиваемый главный объект через AppDomain.SetThreadPrincipal (обычно AppDomain. ** CurrentDomain. ** SetThreadPrincipal).

EDIT:

Оказывается, кто-то принес этот вопрос на форумах MSDN. discussion thread документирует обход, о котором я уже упоминал, а также объяснение поведения.

+0

Большое вам спасибо, это хороший обходной путь! Пожалуйста, перейдите по этой ссылке в моем предложении, проголосуйте и нажмите «Я могу воспроизвести». – Shimmy