ASP.NET Coreを使用してWebアプリケーションを開発しています。認証付きのプロジェクトテンプレートWebアプリケーションを使用する場合:
生成されたApplicationDbContextクラス:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
}
私はそれをモデルに使用できますが、独自のDbContextを作成し、モデルをユーザーの認証と混合しない方が良いでしょうか?
いつものように、状況によります。
これは、クライアントが独自のサーバーに展開する自己完結型のアプリケーションですか?その場合、ビジネスDTOをApplicationDbContext mightに追加することには意味があります。
一方、エンタープライズアプリケーションを構築している場合は、多くのWebアプリで認証を再利用したい場合があります。その場合、おそらく認証モデルとビジネスモデルの両方を独自のクラスライブラリに分離する必要があります。
私は常にApplicationDbContext
をSqlMembershipProvider
と同じように見ています。データアクセスコードを追加したことはありません。
ApplicationDbContext
は、アプリケーションやビジネスロジックではなく、asp.net IDに関連しているため、常にコンテキストを分離し、独自のユーザーエンティティを持ち、他のIUser
をこのエンティティにリンクします。
これは、セキュリティフレームワーク全体を別のもので変更する必要がある場合に備えて、うまく機能します