1

MVC6 で ASP.NET 5 を使用しています。Identity 3.0 を使用していますが、多くの Web サーバーで動作させる方法を知る必要があります。

セッションを別の場所に保存することはできますか? データベース?MVC5 では web.config でそれを行いましたが、MVC6 ではそれに関する情報が見つかりません。

これは Startup.cs の私のコードです

app.UseCookieAuthentication(options =>
            {
                options.AutomaticAuthenticate = true;
                options.LoginPath = new PathString("/Account/Login");
                options.AutomaticChallenge = true;
            });

ありがとう!!

4

1 に答える 1

3

デフォルトでは、Cookie に保存された認証チケットは自己完結型です。暗号化キーを知っていれば、元のチケットを取得するのに十分です (このプロセスにはストアやデータベースは関与しません)。

認証 Cookie がすべてのサーバーで読み取り可能であることを確認するには、認証チケットの暗号化と復号化に使用するキー リングを同期する必要があります。ドキュメントに記載されているように、これは UNC 共有を使用して行うことができます: http://docs.asp.net/en/latest/security/data-protection/configuration/overview.html

public void ConfigureServices(IServiceCollection services) {
    services.AddDataProtection();

    services.ConfigureDataProtection(options => {
        options.PersistKeysToFileSystem(new DirectoryInfo(@"\\server\share\directory\"));
    });
}

または、シリアライゼーション/暗号化ロジックをオーバーライドするために独自のものを提供することもできますTicketDataFormatが、これは推奨されるアプローチではありません。

于 2016-01-14T19:58:43.730 に答える