2016-02-12 14 views
8

MVC6プロジェクトで「Remember me」スタイルのチェックボックスに問題があります。私はrelated question here私のローカルホスト上でデバッグの問題を解決したが、私たちの開発環境にプロジェクトを展開した後、それでも私は20分後に再ログインする必要があります。ASP.Net 5 ID永続認証が機能しないIIS 7.5アイドルタイマー

20分のタイムスパンでは、何かがIISで誤って構成されていると思っていました。私は1分後にアイドルになる私のアプリケーションプール( "マネージコードなし"の設定)アイドルタイマーを設定します。確かに、1分後にもう一度ログインする必要があります。

これは、私のクッキーが10日に期限切れにならないように設定され、SecurityStampValidationIntervalが10日間と1分間設定されていても、私の永続認証クッキーは、 。

私はweb.configファイルのマシンキーに関連する.NETの以前のバージョンで同様のものを見てきましたが、私は、マシンのキーを配置するためMVC6は、web.configファイルでsystem.webセクションを持っていません。

私の.NET5プロジェクトDNXは、.NETコアではなく完全な.NETフレームワークを対象としています。

答えて

6

どのようにデータ保護を設定しましたか? IISおよびDNXでは、デフォルトではないプロファイルをロードしない限り、キーを永続的に格納する場所がわかりません。アプリケーションが終了すると、認証Cookieに署名するために使用されたすべてのキーが破棄されます。これは、IIS Expressではプロファイルを読み込むため、IIS Expressでは発生しません。

ここには2つのオプションがあります。 IISサーバー上でprovisioning scriptを実行して、ASP.NETが使用できるレジストリエントリをいくつか作成するか、複数のホストを実行する場合にはconfigure data protection to use the file systemを実行できます。

+0

です。私はデータ保護を研究していましたが、永続化されたキーを使用するためにファイルシステムまたはレジストリを使用するように設定する必要があることを分かりませんでした。ご協力いただきありがとうございます!私は知っています.Net 5はまだ比較的新しいので、私たちはすべて学んでいます:) – mituw16

+0

この文書やテンプレートで私たちがこれを改善する方法についての提案があれば教えてください。 – blowdart

+0

ドキュメントは素晴らしいです!アイデンティティに永続キーを持たせるために、ファイルシステム(またはレジストリ)に永続化する必要がある2 + 2 = 4接続を作成しなかったので、私はうまくいった。実際には、答えはそこにあった、私はそれを見ていない。私はとても長い間私は簡単な答えを忘れてしまった問題で働いていた:) – mituw16

1

EDIT

より良い解決策については、@ blowdartの回答を参照してください。私が持っていた同じ問題に直面している人のため


、私はこのために実装「修正」は決してタイムアウトを意味し、0にIISでのアイドルタイマーを設定することです。

いくつかのホスティング環境ではアイドルタイマーが0(通常は共有ホスティングなど)に設定されない可能性があるため、実際の解決策を見つけようとしています。

関連する問題