Удалить доменное имя из User.Identity.Name

У меня есть следующий метод внутри моего метода действия:-

repository.InsertOrUpdateRack(rj.Rack, User.Identity.Name, assetid);

Но имя пользователя сгенерировано из User.Identity.Name префикс имени пользователя с именем домена следующим образом:-

DOMAINNAME\username

Так есть ли способ заставить User.Identity.Name получить только имя пользователя? Благодарю.

2 ответа

Решение

Домен является частью имени пользователя, поэтому я не думаю, что какие-либо методы / свойства возвращают то, что вам нужно. Вы не можете просто сделать:

var userName = User.Identity.Name.Split('\\')[1];

Не идеально, но достаточно просто. Если вы хотите скрыть это, вы можете создать метод расширения в IIdentity.

Эквивалент VB (где UserWindowsName может быть переменной или элементом управления, используемым для отображения имени пользователя Windows):

Dim userName As WindowsIdentity = HttpContext.Current.Request.LogonUserIdentity
UserWindowsName = userName.Name.Split("\"c)(1)

var name = Regex.Replace(HttpContext.User.Identity.Name, @"^.*\", "");

Другие вопросы по тегам