访问User.Identity属性扩展从视图(错误)



我正在尝试向用户添加扩展属性。

在IdentityModel.cs中,我添加了一个名为eBrowadmin的字段:

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
    {
        // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
        var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
        // Add custom user claims here
        userIdentity.AddClaim(new Claim("EbrowAdmin", EbrowAdmin.ToString()));
        return userIdentity;
    }
    public bool EbrowAdmin { get; set; }

我在项目文件夹中创建了一个名为Extensions的Foler,并添加了一个名为Extensions.cs的类:

    public static class Extensions
    {
        public static string GetEbrowAdmin(this IIdentity identity)
        {
            var claim = ((ClaimsIdentity)identity).FindFirst("EbrowAdmin");
            // Test for null to avoid issues during local testing
            return (claim != null) ? claim.Value : string.Empty;
        }
    }

现在,我可以从控制器中访问以下情况:

User.Identity.GetEbrowAdmin();

但是,我无法通过相同的代码从我的视图中访问它:

@User.Identity.GetEbrowAdmin();

有什么想法我缺少什么?

您需要说明有关扩展的看法。就像普通的C#代码一样,视图不知道任何自定义代码,直到您将代码的名称空间包含在使用A中。

尝试将using <YOURPROJECT>.<YOURNAMESPACE>.Extensions放在您的直接视图或ViewStart.cshtml

相关内容

  • 没有找到相关文章

最新更新