如何在MVC中使用User.Identity.Name显示Name而不是UserName

时间:2015-10-23 09:45:51

标签: c# asp.net-mvc entity-framework asp.net-identity

关于这个问题有很多主题,没有找到符合我意愿的主题。

在MVC5中,在 <p:outputLabel value="#{products.CreateInvestmentProductsLabel_totalCostGL}" for="totalCostGL" /> <p:selectOneMenu id="totalCostGL" value="#{investmentProductsController.selected.totalCostGL}" editable="true" required="true" requiredMessage="#{products.CreateInvestmentProductsRequiredMessage_totalCostGL}"> <f:selectItem itemLabel="" itemValue="" /> <f:selectItems value="#{investmentProductsController.accountInfo}" var="acc"> <p:column> <h:outputText value="#{acc.accountID}" /> </p:column> <p:column > <h:outputText value="#{acc.accountNumber}" /> </p:column> <p:column > <h:outputText value="#{acc.accountName}" /> </p:column> </f:selectItems> </p:selectOneMenu> 中,有一个函数_LoginPartial,它显示实际用户的UserName。

我想显示来自ApplicationUser的Name,其中包含属性:

User.Identity.GetUserName()

我可以使用静态函数来获取名称,例如:

public ApplicationUser() { Name = FirstName + " " + LastName; } public FirstName {get;set;} public LastName {get;set;} public Name {get;}

我不想再次查询数据库,我想使用这个function.Name(User.Identity.GetUserId()),但是这个函数正在返回UserName,我需要以某种方式覆盖。

如何使用User.Identity.Name

获取名称

2 个答案:

答案 0 :(得分:2)

User.FindFirst("name").Value

即。搜索声明以获取显示字符串。 “name”=获取的标识的显示名称。

答案 1 :(得分:-1)

关闭我的头脑UserManager有一个从UserId获取ApplicationUser的方法。然后使用ApplicationUser对象,您可以获取Name属性。类似的东西:

ApplicationUser user = UserManager.GetUserById(User.Identity.GetUserId());
user.Name;