您好我在我的项目中使用身份,我可以使用以下代码部分轻松获取_layout页面上用户的用户名:
@User.Identity.GetUserName
但我有更多属性可以获得。这是我的扩展用户类..
using Microsoft.AspNet.Identity.EntityFramework;
using ModulericaV1.Areas.Hr.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;
namespace ModulericaV1.Models
{
public class ApplicationUser : IdentityUser
{
public ApplicationUser()
: base()
{
this.Groups = new HashSet<ApplicationUserGroup>();
}
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[Required]
public string Email { get; set; }
public virtual ICollection<ApplicationUserGroup> Groups { get; set; }
public int? HrPersonId { get; set; }
public virtual HrPerson HrPerson { get; set; }
}
}
我正在尝试实现GetUserName之类的方法,但我真的无法启动,因为我找不到定义。
这是我调试代码时的定义。但我错过了一些东西。
namespace Microsoft.AspNet.Identity
{
public static class IdentityExtensions
{
public static string FindFirstValue(this ClaimsIdentity identity, string claimType);
public static string GetUserId(this IIdentity identity);
public static string GetUserName(this IIdentity identity);
}
}
我的主要问题是:如何编写获取电子邮件或HrPerson属性的方法。