4

我正在 MVC3 @Razor 中构建一个 Intranet 站点。它正在使用 Windows 身份验证。我遇到的问题是数据库中的所有用户都由 UserID 列出。从 Windows 上下文中获取用户信息的默认操作包括域(例如 domain\userid)。是否可以将其更改为仅获取用户 ID 并忽略域,而无需编写自定义身份验证过程?含义 User.Identity.Name 只是用户 ID,而不是域和用户 ID。

编辑:这是基于使用默认成员资格的成员资格模型。

编辑:问题与信息的显示无关。问题是当系统从Windows获取用户信息然后去获取成员信息时,可以删除域,因此只传递用户ID而不是域和用户ID。我想要的只是能够将用户标识而不是“域\用户标识”传递给成员。

4

2 回答 2

14

以下:

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

将删除域部分。

于 2012-09-14T20:27:35.657 回答
0

我在视图上使用它。

MVC视图:

<a asp-area="" asp-controller="Manage" asp-action="Index" title="Manage">
  <span class="glyphicon glyphicon-user" style="color:white"></span> 
    Hello @UserManager.GetUserName(User).Split('@')[0]!
</a>
于 2018-05-01T03:13:50.797 回答