0
私はUser.Identityに拡張プロパティを追加しようとしていますと、以下のように行っている:ビューからアクセスUser.Identityプロパティ拡張(エラー)
IdentityModel.csで私はEbrowAdminというフィールドが追加されました今、私は私のコントローラからのこの新しいプロパティにアクセスすることができます
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;
}
}
:
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; }
私はプロジェクトフォルダに拡張機能と呼ばれるfolerを作成し、Extensions.csというクラスを追加しました:
User.Identity.GetEbrowAdmin();
は、しかし、私は同じコードと私のビューからアクセスすることはできません。
@User.Identity.GetEbrowAdmin();
すべてのアイデアは、私が何をしないのですか?
のいずれかに
using <YOURPROJECT>.<YOURNAMESPACE>.Extensions
を入れてみてください - それを解決しています。ビュー/ Web.configに名前空間拡張を追加しましたが、それは何らかの理由で動作しません...しかし、ビューに直接指示を加えることはトリックでした。ありがとうございました。 – Johnathan