Как использовать аутентификацию Windows в WPF?

enter image description here

у меня на самом деле есть 3 широкоэкранных монитора в режиме портрета и да, это - фантастический способ работать. Существует настолько меньше прокрутки вокруг, и можно соответствовать всей отладке / вывод / ссылочные окна на экране сразу.

проблема с использованием двух мониторов состоит в том, что Вы будете обычно работать над одним основным и произвели (или безотносительно над другим). Если Вы действительно имеете два, настраиваете его так, чтобы Ваш основной монитор был непосредственно перед Вами, и другой (менее часто используемый) каждый прочь одной стороне. Я нахожу, что, чтобы быть лучшим способом израсходовать двухмониторный набор, поскольку он уменьшает RSI от того, чтобы быть постоянно скрученным для рассмотрения конкретного экрана.

Кроме того, существуют некоторые программы, доступные для обеспечения виртуальных экранных разделений , который у меня есть фонд, очень полезный для больших/широкоэкранных установок монитора.

[редактирование] .. и да, необходимо записать функции, достаточно короткие для установки на единственной странице, но способность видеть больше функций в любой момент может часто делать разработку легче, по моему опыту:-)

[edit2], Выполняющий IDE Visual-Studio-esque в портрете на широкоэкранном мониторе, является фантастическим когда дело доходит до отладки ошибок компиляции, поскольку у Вас есть больше применимого пространства для наблюдения кода и ошибок одновременно. Я предполагаю, что Вы могли утверждать что, если Вы компилируете достаточно регулярно, хотя, Вы не должны видеть что много ошибок когда-то?..., но кто кодирует как этот?;-)

7
задан Joel Coehoorn 16 May 2012 в 16:40
поделиться

2 ответа

Ответ Итовлсона был правильным, но также, чтобы использовать PrincipalPermissionAttribute в любом методе, вы должны сначала сделать принципала Windows текущим принципалом, вызвав:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
7
ответ дан 6 December 2019 в 21:16
поделиться

Причина, по которой это не работает в WPF, заключается в том, что эти службы реализованы в классе VB WindowsFormsApplicationBase, который не используется в приложениях WPF. Чтобы сделать то же самое самостоятельно:

Вызовите WindowsIdentity.GetCurrent () , чтобы получить идентификатор пользователя Windows. Вы можете получить имя отсюда.

Если вы специально хотите установить принципала потока, как это делает опция проверки подлинности Windows VB, вызовите Thread.CurrentPrincipal = new WindowsPrincipal (WindowsIdentity.GetCurrent ()) - - это именно то, что WindowsFormsApplicationBase делает внутренне.

EDIT: Если вы предпочитаете My.User API, похоже, вы сможете сделать то же самое, вызвав My.User.InitializeWithWindowsUser () . Однако я не проверял это.

5
ответ дан 6 December 2019 в 21:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: