Получить имя пользователя Windows в ASP.NET без System.Web - PullRequest
2 голосов
/ 19 июля 2011

У меня есть dll для отчетов, который используется в ASP.NET (Windows Authentication) и проектах winforms.Иногда требуется имя пользователя, поэтому, если бы он работал в ASP.NET, он использовал бы:

System.Web.HttpContext.Current.User.Identity.Name;

и в Windows

WindowsIdentity.GetCurrent().Name

Теперь я пытаюсь перейти на .NET 4 ClientПрофиль, поэтому мне нужно избегать ссылки System.Web в отчетности DLL.Есть ли альтернативный способ получить имя пользователя Windows для, когда DLL работает в ASP.NET, который не будет использовать System.Web.Единственный способ избежать System.Web, который я сейчас вижу, - передать имя пользователя в качестве параметра, который будет непросто настроить в каждом отчете.

Ответы [ 5 ]

5 голосов
/ 19 июля 2011

Возможно, вы можете использовать свойство CurrentPrincipal класса Thread :

using System.Threading;

string userName = Thread.CurrentPrincipal.Identity.Name;
2 голосов
/ 19 июля 2011

Вы можете использовать Environment.UserName, который живет в System.

0 голосов
/ 11 января 2013

Если аутентификация Windows включена, это может сработать: Page.User.Identity.Name В моем случае это работает.

0 голосов
/ 19 июля 2011

Использование System.net - NetworkCredential.Username?

Ссылка: http://msdn.microsoft.com/en-us/library/system.net.networkcredential.username.aspx

0 голосов
/ 19 июля 2011

Пространство имен System.Web определенно доступно в приложении ASP.Net. Вы можете определенно использовать это. Кроме того, у вас также будут провайдеры членства, которые вы можете использовать для проверки или указания текущего имени пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...