身份的扩展方法

时间:2014-12-02 19:50:56

标签: asp.net-mvc-5 extension-methods identity

我正在使用MVC 5,我发现了这个: User.Identity.Name full name mvc5 ,但我不知道如何使用“身份上的扩展方法” 我把这个代码放在哪里,哪里......请帮帮我

身份的扩展方法:

public static class GenericPrincipalExtensions
{
    public static string FullName(this IPrincipal user)
    {
        if (user.Identity.IsAuthenticated)
        {
            ClaimsIdentity claimsIdentity = user.Identity as ClaimsIdentity;
            foreach (var claim in claimsIdentity.Claims)
            {
                if (claim.Type == "FullName")
                    return claim.Value;
            }
            return "";
        }
        else
            return "";
    }
}

1 个答案:

答案 0 :(得分:1)

  1. 创建一个新的静态类,例如 IdentityExtended
  2. 在其中放置静态方法,例如
  3. 放入Clamis和Principal的命名空间

using System.Security.Claims; using System.Security.Principal;

public static class IdentityExtended { public static string GetFullName(this IIdentity identity) { IEnumerable<Claim> claims = ((ClaimsIdentity)identity).Claims; var FullName = claims.Where(c => c.Type == "FullName").SingleOrDefault(); return FullName.Value; } }

  1. 示例的内部视图如下所示

    <h1 class="display-4 rainbow-text">Hello, @User.Identity.GetFullName()!</h1>

    只需确保将类放入解决方案本身而不放在子文件夹中