【问题标题】:Remove domain from User.Identity.Name in MVC3从 MVC3 中的 User.Identity.Name 中删除域
【发布时间】:2012-09-14 20:23:52
【问题描述】:

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

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

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

【问题讨论】:

  • 对于视觉上的倾向,如果你包含一个代码 sn-p 可能会很好。

标签: asp.net-mvc-3 windows-authentication


【解决方案1】:

以下内容:

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

将删除域部分。

【讨论】:

  • 这只适用于显示器。这无助于解决我的问题。我的问题是在身份验证过程中传递给会员的内容。
  • @user1672410 - 您还没有完全描述您的问题。你只是在描述你认为答案是什么。您的实际问题是什么,而不是您认为可以解决问题的问题。
  • 你的行应该是 User.Identity.Name.Split('\\')[1];因为 \ 是一个转义字符。
  • Razor - 没有分号所以 --> @User.Identity.Name.Split('\\')[1]
【解决方案2】:

我在 View 上就是这样使用它的。

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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    相关资源
    最近更新 更多