最近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>
インターフェイスから完全に除外できたようです。
この時点での私の結論は、必要に応じてどのように実装するかということであり、アプリケーション コードまたは将来のユーザー管理ライブラリによってのみ呼び出されるということです。