5

我在我的操作方法中有以下方法:-

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

但是生成的用户名User.Identity.Name 会在用户名前加上域名,如下所示:-

DOMAINNAME\username

那么有没有办法强制User.Identity.Name 只检索用户名?谢谢。

4

2 回答 2

15

域构成用户名的一部分,因此我认为任何方法/属性都不会返回您需要的内容。你不能只做:

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)
于 2013-10-28T16:55:35.330 回答
0

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

于 2021-05-20T18:05:11.010 回答