VS2013 RTW MVC テンプレート (「個々のユーザー アカウント」用) で新しい ASP.NET ID を試してみましたが、うまく機能しています。データをシリアル化する方法をカスタマイズしながら、Facebook ログインを統合することができます。
まったく問題ありませんが、(MVC の代わりに) 新しい SPA アプリを作成すると、認証の話が大きく異なることに気付きました。例として:
SPA テンプレートから:
public AccountController()
: this(Startup.UserManagerFactory(), Startup.OAuthOptions.AccessTokenFormat)
{
}
public AccountController(UserManager<IdentityUser> userManager,
ISecureDataFormat<AuthenticationTicket> accessTokenFormat)
{
UserManager = userManager;
AccessTokenFormat = accessTokenFormat;
}
MVC テンプレートから:
public AccountController()
: this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())))
{
}
public AccountController(UserManager<ApplicationUser> userManager)
{
UserManager = userManager;
}
これは、Account コントローラーのコンストラクターの違いにすぎません。他にも多くの違いがあります。MVC バージョンでは、ApplicationDBContext から独自のコンテキスト クラスを簡単に派生させ、それを使用して認証テーブルと一緒に独自のテーブルを格納することができました。SPA テンプレートでデータ ストレージをカスタマイズする方法がわかりませんでした。
また、SPA テンプレートには、次のクラスが含まれ、使用されます。 public class ApplicationOAuthProvider : OAuthAuthorizationServerProvider
MVC テンプレートは、このクラスを定義 (または使用) しません。
MVC テンプレートと SPA テンプレートの間に違いが必要な理由がわかりません。
これら 2 つのテンプレートで認証の処理が異なる理由について、誰かが私にガイダンスを与えることができますか? プロジェクトをゼロから開始する場合、両者の間でたどる優先パスはありますか? (特に、カスタム EF Context クラスを定義してデータの格納方法をカスタマイズするという点では、MVC テンプレートのコードが最適のようです。)
ありがとう...
-ベン