12

最近Visual Studio 2013でRTMされた新しい認証機能をいじっていました。

カスタム UserStore を実装している間、同梱されている UserStore の逆コンパイルされたソースを見ていましたMicrosoft.AspNet.Identity.EntityFramework.UserStore<TUser>。ユーザーを削除する方法がサポートされていないことに気付きました。

  public class UserStore<TUser> : IUserLoginStore<TUser>, IUserClaimStore<TUser>, IUserRoleStore<TUser>, IUserPasswordStore<TUser>, IUserSecurityStampStore<TUser>, IUserStore<TUser>, IDisposable where TUser : IdentityUser
  {
       // other stuff omitted

    public virtual Task DeleteAsync(TUser user)
    {
      throw new NotSupportedException();
    }
  }

それは奇妙ですね。ユーザーの削除がサポートされていないのはなぜですか?

ハード削除されたユーザー レコードを作成した実稼働システムを覚えていないことは認めますが、この機能がサポートされていない理由がわかりません。

技術的な理由はありますか、それとも Microsoft がユーザー レコードの削除は「悪い」と感じており、開発者がメソッドをオーバーライドするための演習として残しているためですか?

アップデート

ASP.NET チームの考えを理解するために、フレームワークの使用法を検索しましたDeleteAsync(TUser user)。フレームワーク内の何もそれを呼び出すようには見えません。したがって、メンバーをIUserStore<TUser>インターフェイスから完全に除外できたようです。

この時点での私の結論は、必要に応じてどのように実装するかということであり、アプリケーション コードまたは将来のユーザー管理ライブラリによってのみ呼び出されるということです。

4

2 に答える 2