0

ユーザー名やパスワードなど、ユーザーの必須フィールドを指定するメンバーシップ プロバイダーを使用しています。その後、このユーザー クラスを継承して、必要なその他のフィールドを持つ独自のユーザーを作成できます。

こんな感じでアカウントを追加しました

public Account AdminAccount { get; set; }

メンバーシッププロバイダーを使用してユーザーを取得すると、次のようになります。

return _context.Set<TUser>().SingleOrDefault(u => u.Username == username);

このメンバーシップ クラスのクラス定義は次のようになります。

public class FlexMembershipUserStore<TUser> 
    : IFlexUserStore
        where TUser: class, IFlexMembershipUser, new()     

そのため、作成時にユーザー クラスを送信すると、クラスは Tuser を IFlexMembershipUser として認識します。

ただし、IFlexMembershipUser には AdminAccount プロパティがありません。IFlexMembershipUser から継承するクラスだけがそれを持っています。そのため、データベースに AdminAccount_Id というフィールドが正しく設定されていても、ユーザーを取得すると、AdminAccount が null になるだけです。

もちろん、メンバーシップのみが IFlexMembershipUser とそのクラスに存在しないプロパティを表示するという問題がありますが、他のスカラー値は適切に読み込まれます。

私にできることはありますか?この特定のケースでは、代わりにユーザーリストとしてアカウントの管理者を追跡するようにできます。だから私はこれをそのように解決することができますが、これが別の方法で解決できるかどうかはまだ興味があります.

4

1 に答える 1