2013-06-26 2 views
-3

У меня есть приложение WPF, которое должно получить имя пользователя Windows для пользователя. Я использую следующую строку кода:Получить пользователя Windows C#

MessageBox.Show("Your username is:\n" + WindowsIdentity.GetCurrent().Name);

Это прекрасно работает на моем компьютере и компьютерах других наших разработчиков, но и для других, он выходит из строя. Я предполагаю, что это проблема с разрешениями. Вот ошибка:

Problem signature: 
Problem Event Name: CLR20r3 
Problem Signature 01: notesformultipleproperties.exe 
Problem Signature 02: 1.0.0.0 
Problem Signature 03: 51cb04a1 
Problem Signature 04: PresentationFramework 
Problem Signature 05: 4.0.0.0 
Problem Signature 06: 504dc7da 
Problem Signature 07: 7b4d 
Problem Signature 08: 0 
Problem Signature 09: System.Windows.Markup.XamlParse 
OS Version: 6.1.7601.2.1.0.256.48 
Locale ID: 1033 
Additional Information 1: 0a9e 
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 
Additional Information 3: 0a9e 
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789 

Read our privacy statement online: 
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409 

If the online privacy statement is not available, please read our privacy statement offline: 
C:\Windows\system32\en-US\erofflps.txt 

Могу ли я разрешить запуск этой строки кода независимо от того, какие разрешения у пользователя есть?

+0

ли вам просто нужно имя пользователя в одиночку, или вы также нуждаются в информации домена? 'Environment.UserName' будет _not_ предоставлять домен, в то время как ваш текущий метод будет. – DonBoitnott

ответ

3

Как насчет Environment.UserName? Он вернет «имя пользователя, в котором работает текущий процесс».

2

Вы можете использовать Environment.UserName вместо получения WindowsIdentity. Это требует меньше разрешений и, скорее всего, будет работать без повышенных разрешений, которые вы в настоящее время требуете.

2

Этот вопрос имеет принятый ответ: How do I get the logged in user's window's credentials in a WPF application

Environment.UserName

+3

Тогда зачем писать еще один? – Clemens

+0

Поскольку у меня не было достаточной репутации в то время, чтобы отметить как дубликат или комментарий к исходному сообщению :) –

+0

, тем не менее, это не ответ. клеился. – Doorknob

Смежные вопросы