問題タブ [machinekey]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - さまざまなWebアプリケーション用のさまざまなマシンキー
.NET4で実行されている2つのWebアプリケーションがあります。両方のWebアプリケーションは同じサーバーでホストされています。ここに2つの質問があります:
これらのアプリケーションは両方とも同じマシンキーを共有しますか?アプリケーションごとに異なるマシンキーを使用するにはどうすればよいですか?
c# - 単一サーバー環境で「ビューステートMACの検証に失敗しました」を*ランダムに*取得するのはなぜですか?
はい、この特定のエラーについては100万の質問とスレッドがあり、十分に文書化された解決策がたくさんあります。これは間違いなく試してみます。しかし、最初に私は私の特定の状況/環境の問題を理解したいと思います。
私の状況では、このエラーは完全にランダムなようです。私はそれを見ずに何週間も行きます、そしていつか私は私のサイトにログインしてエラーを受け取ります。ページを更新し、再度ログインしてください。問題ありません。インシデント間のこれらの期間中、Webサーバーに特に特別なことは何も起こりませんでした。
それは別のことです。エラーには「このアプリケーションがWebファームまたはクラスターによってホストされている場合...」と表示されますが、そうではありません。これは、単一のWindowsServer2008です。
したがって、一般的な解決策は、静的なマシンキーのセットをweb.configファイルに追加することであると理解しています---しかし、なぜこれが一見ランダムに発生するのか、単一のWindowsServer2008上にある私のサイトで発生するのはなぜですかマシーン?
ASP.NET 4を使用していて、私のサイトはIISで実行されているWebアプリケーションです。
エラーメッセージ:
スタックトレース:
asp.net - Asp.Net メンバーシップのログインとマシン キー
認証に ASP.Net メンバーシップ ログイン コントロールを使用する .Net アプリケーションがあります。アプリケーションを IIS7 で Web サイト ( www.mysite.com ) として公開しました。すべて正常に動作しています。
ここで、新しい Web サイトを作成し、そこに私のパブリッシュ ( www.site.com/mysite ) を含むアプリケーションを追加しました。この公開では、もうログインできません (「失敗」エラーが発生します)。インターネットで多くの検索を行った結果、アプリケーションで自動生成されたマシン キーが問題の原因であることがわかりました (web.config にマシン キーが設定されていませんでした)。アプリケーションで既にユーザーが作成されているため、マシンキーを設定できません。マシンキーを設定すると、ログインできなくなります。
私の質問は、どうすれば新しい Web サイト (www.site.com/mysite) に最初のサイトと同じマシン キーを使用させることができるでしょうか? 同じ AppPool を設定しようとしましたが、運がありません。
備考: 正常に動作し、同じマシン キーを使用する他のパブリッシュがありますが、それらはすべて Web サイト (www.mysecondsite.com など) のルート アプリケーションです。アプリケーションに新しいキーを生成させるこの構成 wwww.site.com/mysite で何が起こるか、何が違うのでしょうか?
asp.net - 新しいサーバーで IIS7 に移行した後、MachineKey IIS6 が原因でユーザーのパスワードが機能しない
Windows 2003 + IIS6 から新しい Windows 2008 + IIS7 に早急に移行する必要がありました
ハッシュされたパスワードを使用した ASP.NET メンバーシップ データベースを使用した Web サイトがいくつかあります。新しいサーバーでは、使用されていなかったユーザーは正常に動作しますが、最近それを使用したユーザーはログインできません (エラーは無効なパスワードです) 新しいパスワードを同じに設定した後でも起こります。
問題はMachineKeyにあると読むことができます(セットアップされていないため、コンピューターのMachineKeyを使用していました)IIS7のmachinekeyを以前と同じに設定しようとしているので、ユーザーが再び作業できるようになります。
パスワードなどを知らないユーザーが 500 人以上いるため、再作成することはできません。
以前のサーバー (win 2003) の古い MachineKey はどこにありますか?
よろしく、
ジョージ
amazon-ec2 - AWS EC2でマシンキーを同期する方法は?
Auto-Scalingはバッファ期間を許可しないか、ダウンオートスケーリングのためにオフになるようにスケジュールされているインスタンスに「新しいリクエスト」のみが着信することを許可しないほどインテリジェントではないため、スティッキーの使用を避けようとしています-ELBによって提供されるセッション。そうしないと、この動作により、一部の顧客にログイン画面が表示されます。
Webサイトおよびその他のRESTfulWebサービスはIIS7で実行されています。このWebサイトは、従来のフォームベースの認証(MVC3に組み込まれているメンバーシッププロバイダー)を使用していますが、間もなくカスタムメンバーシッププロバイダーに移行して、Cookieを確認し、復号化してから判断を下します。RESTful Webサービスは、すでにカスタムメンバーシッププロバイダーを使用しています。
このような状況では、ELBを介したスティッキーセッションを使用せずに取得できないWebサイトだと思います。
RESTful WebサービスのELBは、要求ごとにCookieを個別に監視して、暗号化された値を持つ認証トークンが存在するかどうかを確認するため、非スティッキーに構成できます。ただし、ここでの問題は、FormsAuthentication.EnryptメソッドとFormsAuthentication.Decryptメソッドであり、内部でMachineKeysを使用します。右 ?!そうでない場合は問題ありませんが、問題がない場合は、EC2の自動スケーリングされたインスタンス間でマシンキーを同期する方法はありますか?
iis - Web.config マシンキー トラップ - マシン キーの使用概念はありますか?
IIS 管理者ユーザーが誤って生成キーを押して、web.config のマシン キーが上書きされる可能性があることを懸念しています。バックアップから取得するだけなので、人々はそれほど心配していませんか? それとも、誰もが堅実な管理プロセスを持っていますか、それとも優れた管理者はそうしていませんか?
IIS の開発マシンを使用していて、間違ったサイトのボタンを押しただけです。マシン キーがバックアップから復元されるまで、ユーザーをテストします。
顧客の web.config 属性が必要かどうか疑問に思っていますか?
ここでの優れた管理慣行とは何ですか? 他の知恵の言葉はありますか?IIS管理者ドンク以外。使用中のキーを示す通常の方法はありますか、再生成できませんか?
asp.net - SSO フォーム認証の問題。認証 Cookie を復号化できません
アプリケーション A とアプリケーション B の 2 つの Web アプリケーション間で SSO 認証を開発しようとしています。アプリケーション A は MVC 4 アプリケーションで、アプリケーション B は MVC 3 アプリケーションです。
起こるべきことは次のとおりです。
- ユーザーがアプリケーション B にアクセスしようとすると、アプリケーション A のログイン ページにリダイレクトされます。
- アプリケーション A にログインすると、アプリケーション B にリダイレクトされます。
実際に起こることは次のとおりです。
- ユーザーがアプリケーション B にアクセスしようとすると、ログインのためにアプリケーション A にリダイレクトされます
- ユーザーがアプリケーション A にログインすると、アプリケーション B にリダイレクトされます
- アプリケーション B は、ユーザーがまだログインしていないかのように、ログインのためにユーザーをアプリケーション A にリダイレクトするため、ここで何かが間違っています。
何が問題なのかを理解するために、次の手順を実行しました。
- アプリケーションBに認証Cookieが渡されていることを確認
- マシン キーの検証と復号化キーが web.config の両方のアプリケーションで同じであることを確認しました
- enableCrossAppRedirects が web.config で有効になっていることを確認しました
- このフォーラム投稿のコードを使用して、両方のアプリケーションが認証 Cookie を復号化できるかどうかを確認しました: http://forums.asp.net/t/1762166.aspx/1
- 認証 Cookie は、アプリケーション A では正常に復号化されますが、アプリケーション B では復号化されません。アプリケーション B では、FormsAuthentication.Decrypt メソッド中に「データを検証できません」という例外が発生します。
誰でもこれで私を助けることができますか?同じマシン キーを使用しているにもかかわらず、復号化に失敗したのはなぜですか? この認証方法に頼ることはできますか? この記事は、もはや信頼できないと言っているからです。 http://blog.appharbor.com/2012/02/22/asp-net-forms-authentication-considered-broken
ありがとう!
asp.net-mvc - DotNetNuke 7 と DotNetNuke 7 以外のサイト間で ASP.NET 承認 Cookie を共有するにはどうすればよいですか?
DotNetNuke にログインしたユーザーに固有の情報を表示する ASP.NET MVC 4 Web サイトを構築しています。これを達成するために、web.config のマシン キーがまったく同じになるように設定しています。また、<authentication>
どの DotNetNuke ユーザーが MVC サイトからログインしているかを確認するために、Web サイト全体で一致するように構成セクションを設定しています。 .
これを達成する方法の例はたくさんあります。これは私たちが使用したガイドです: http://msdn.microsoft.com/en-us/library/eb0zx8fc.aspx
ただし、これは、2 つの DotNetNuke サイトまたは 2 つの DotNetNuke 以外のサイト間に信頼をセットアップする場合にのみ機能します。ASP.NET auth-cookie が DotNetNuke に設定されている場合、MVC サイトではアクセスできません。DotNetNuke サイトにログインした後、MVC サイトを参照すると、HttpContext.Current.User.Identity.Name が空になります。
2 つのサイトは同じサーバー上にセットアップされ、それぞれが異なるポートで実行されます。これは Windows Server 2012 で実行されているため、IIS 8 では匿名認証とフォーム認証の両方が有効になっています。
両方のサイトに設定されている web.config の値は次のとおりです。
MachineKey 値:
<machineKey decryption="3DES" decryptionKey="C7DE3391E9E25BC1106BA55B1A86EB825A66A06A2AA720CF" validation="SHA1" validationKey="F41C305583E22214850AD9B2B989588F5045EE2A99EFF68849B81EF154CFF745230F12D4BCFEBB0214BB24F8A6EDB34A9B45BB0849F6CB60E5D23528A69DBBC6" />
認証セクション:
<authentication mode="Forms">
<forms timeout="60" cookieless="UseCookies" ticketCompatibilityMode="Framework40" />
</authentication>
任意の洞察をいただければ幸いです。
ありがとう!
c# - HMACの現在のMachineKeyまたは同等のものを取得する(Webファーム内)
Webファーム環境でのメッセージ認証にHMACSHA256を使用しています。
Webファーム内では、各マシンが同じマシンキーを持っているため、ViewStateはマシン間で機能しますが、マシン間で機能するHMACメッセージ認証を実行する必要があるため、すべてのマシンが同じマシンキーを使用するため、 HMACキーとして使用するために、そこからキーを派生させる方法である必要があります。
.NET 4.0の時点でMachineKeyクラスがあることに気付きましたが、 .NET 3.5の使用に固執しており、これを利用できません。
ASP.NET 3.5環境で使用するために、自分で生成せずにすべてのマシンで同じソートキーを取得する方法はありますか?
編集
実際にはマシンキー自体は必要ありません。マシンキー(または同等のもの)から派生した検証キーだけが必要です。
asp.net-mvc - IsolateApps により、指定された復号化キーに無効な 16 進文字が含まれています
認証を使用する MVC 4 サイトで作業しています。このサイトでは、マシン キーの値を指定する必要があります。「実行時に自動的に生成する」の選択を解除し、キー値を生成し、「アプリケーションごとに一意のキーを生成する」を選択して、IISインターフェイスを介してこれを行いました
web.config エントリは次のようになります。
これは別の Web プロジェクトでは問題なく動作するようですが、現在作業中の開発マシン (IIS-Express と IIS 7.5 の両方) で「指定された復号化キーに無効な 16 進文字があります」というエラーが発生します。
キー値から削除",IsolateApps"
すると問題は解決しますが、本番環境でこのオプションをオンにする必要があるため、展開時にこの問題が発生するためだけに削除したくありません。
何を与える?開発ボックスは、.net 2.0 および .net 4.0 を含む SQL 2008 R2 ボックスです。