認証 - usermanager c#




ASP.NET MVC 5 OWIN認証 (2)

ASP.NET IDモデル全体を捨て、独自のコンポーネントを使用してパスワードの検証やロール/クレームの保存を行うことができます。

http://www.khalidabuhakmeh.com/asp-net-mvc-5-authentication-breakdown-part-deux

メンバーシップ/アイデンティティとフォーム認証は、IDとアクセス管理の2つの異なる機能です。 マイクロソフトのドキュメントでは、この2つの違いを説明していません。 これはそれを説明する短く甘い投稿です。 記事はOWINの前に書かれましたが、同じ原則が適用されます。

http://brockallen.com/2012/06/04/membership-is-not-the-same-as-forms-authentication/

私はMVC 5を知り始めました。私は、その組み込みのowin認証を使用しようとしています。

私はIISでフォーム認証を実装する必要がありますが、OWIN認証は私が待っているより複雑です。

私は、独自のUser、Role、およびRoleUserテーブルを持つEntity Framework Modelを持っており、これらのテーブルによってユーザーを認証したいと考えています。

私は、サンプルmvc 5アプリケーションでowinがどのように動作するかを理解しようとしました。 これにはApplicationUserクラスがあります:

public class ApplicationUser : IdentityUser
{
}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }
}

私の主な問題はIdentityUserです。 IUserインターフェイスの実装とDbContextの接続を持つ独自のASP.NETユーザークラスです。 私はEFモデルから独自のユーザーPOCOエンティティを持っており、ASP.NET IUserインターフェイスと混合したくありません。 私は理由を知っているが、IUserインターフェイスのIDは文字列型で、それも私には当てはまりません。

owin asyncユーザーのサインインは次のとおりです。

private async Task SignInUserAsync(User user, bool isPersistent)
{
    AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
    ClaimsIdentity identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
    AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
}

ユーザーにサインインするためのClaimsIdentity IDの種類を作成することをお勧めします。ユーザープロパティはIUserインターフェイスを実装する必要があります。

大きな質問:私の環境で使うことをオイーンが提案していますか? 私はowin認証で私のユーザークラスを使用したいが、私はどのようにわからないのですか?

事前にお手伝いいただきありがとうございます


私が理解できる最良の方法は、POCOクラスをIdentityUserから派生させることです。 そうすることで、新しいクラスの一部としてPOCOプロパティを追加できます。 その後、次のような新しいUserManagerをインスタンス化できます。

UserManager um = new UserManager<YourPocoDerivedFromIdentityUser>(new UserStore<YourPocoDerivedFromIdentityUSer>(new ApplicationDbContext())

OWINを使用すると、FB、Googleなどの第三者認証を簡単に統合できます。 OWINチームは、MVCとの統合を本当にうまくやってくれました。

しかし、あなたの現在の認証システムがうまくいけば、なぜあなたはアップグレードしたいのですか?

PS - http://www.apress.com/files/extra/ASP_NET_Identity_Chapters.pdf

ここでは、新しいアイデンティティ・システムについて3つの章を見つけることができます。 彼らは非常に良い読書であり、私はあなたが始めるためにそれらを強く勧めます。







owin