ASP.Net MVC 5.0は、プラグアンドプレイのためOWINのimplemenationを使用します。
はにすべての ユーザーが必要ですたIUserインタフェースを実装する必要があり、この
FROM Scott Allen Article
たIUser
ユーザーオブジェクト、ために設計されたインターフェースのカップルがあります少なくともIDと名前が必要です。 の最も顕著な側面IUserはstring型のIdプロパティです。文字列はGUIDの にはうまくいきますが、 SQL Serverでよく見られるように、整数をキーに使用するとちょっとしたことがあります。将来の投稿の詳細。コアアイデンティティアセンブリ内
IUserStore
I *ストア・インターフェースは、機能のさまざまなレベルを提供するために織り込まれています。作成、取得、更新、および(CRUD)機能を削除 -
IUserStoreは、ユーザー のためにしたいと思います最低限の機能を定義します。 ウェブサイトでパスワードを使用してローカルアカウントを作成できるようにしたい場合は、 のコンポーネントにIUserPasswordStore(これは IUserStore)を実装する必要があります。サードパーティのログイン(TwitterとFacebook、 の例)では、IUserLoginStoreを追加し、クレームの保存には IUserClaimStoreがあります。また、上のクラス図には示されていませんが、役割(IRole、IUserRoleStoreなど)のためのインターフェイスのコレクションは です。 ロール対討論が開始されるようにしましょう。
のUserManager
UserManagerが具象クラスであり、それは、ユーザ情報を操作するためのドメイン・ロジックを提供するのUserManagerあります。 UserManagerは、パスワードをハッシュするタイミング、ユーザーを検証するタイミング、およびクレーム管理方法を認識します。
UserManagerにはいくつかの拡張ポイントがあります。たとえば、カスタムのユーザーバリデータ(IIdentityValidatorを実装するオブジェクト)、カスタムパスワードバリデーター、およびカスタムパスワードハッシャーを設定するために使用できる多数のプロパティーがあります。主な拡張ポイントは、UserManagerコンストラクターを使用することです。これにより、IUserStoreを実装するすべてのオブジェクトを渡すことができます。 UserManagerを使用してSQL Serverに格納されているユーザー情報を管理する場合は、あらかじめ作成されたクラスを参照して後で説明しますが、ドキュメントデータベースなどで作業するIUserStoreを作成することも簡単ですストレージの形態。
IUserStoreは、ユーザーパスワードの操作方法を知らないため、IUserPasswordStoreのみがパスワードを知っています。 UserManagerは異なるコアインターフェイスを認識しており、コンストラクタで指定されたストアオブジェクトの機能を使用して動作しようとします。たとえば、FindByIdAsyncを使用する場合、UserManagerはユーザーストアを使用してユーザーをIDで照会できますが、FindAsync(ユーザー名とパスワードを使用します)を呼び出し、基礎ストアがIUserPasswordストアインターフェイスを実装していない場合、 UserManagerは強制的に例外をスローします。
ユーザーからパスワード、クレームまでのすべてに単一の具体的なクラスを使用するのは難しく、トレードオフが必要です。今後の記事のトレードオフについても見ていきます。
EDIT:それが文字列だった前Implementing ASP.Net Identity
をチェックアウト今ASP.Netのアイデンティティは、一般的なIdentityUser<TKey>
をサポート、つまりユーザーIDは、文字列
IdentityUserとIdentityDbContextから継承する場合、MicrosoftのUserStoreクラスを使用して余分な作業をすることなく永続性を管理することもできます。それ以外の場合は、自分で作成したUserStoreを最初から実装することになります。 – OdeToCode