Удалить доменное имя из 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, @"^.*\", "");