2

更新 2

.NET のソース コードを調べて有益な情報を見つけることができましたが、最終的には期限内にリバース エンジニアリングを行うには時間がかかりすぎるように思われるため、最初のオプションである Web のみを使用することにしました。サービスは、私のために .ASPXAUTH Cookie を生成します。独自の Cookie をゼロから生成する方法を詳しく調べたい場合に備えて、以下にいくつかの便利なリンクを見つけました。答えてくれたみんなありがとう!

リンク

更新 1

.netlibrarysourceからソースを見つけることができました。このソース コードには、setauthcookie のソース コードが含まれているようです。Cookie を見て、Cookie を生成する方法を理解できるかどうかを確認します。

元の投稿

私は別のスレッド [1] に同様の質問がある可能性があるのを見ましたが、文言からは投稿者が何を望んでいるのか正確に判断できないため、自分で書いています。

ASP.NET で記述された Web アプリケーションと、サイトの機能の一部を改良するために導入された別の言語/スタック (RoR と呼びます) があります。.NET が最初であるため、すべてのセッションの優先順位は、認証チケット (Cookie の ASPXAUTH フィールド) を使用して、ユーザーが認証されたかどうかを確認することを中心に展開されます。このフィールドは、セッションを処理するために多くの ASP サイトで生成されますが、これを使用しないとうまくいきません。

これは通常は問題になりませんが、ユーザーが RoR ページを使用してサイトにログインし、ASPX ページまたは RoR ページのどちらにアクセスしているかに関係なく、サイト全体で認証状態を保持できるようにしたいと考えています。したがって、次の 2 つのオプションがあるように感じます。

  1. SetAuthCookie() を使用して machinekey [2] から適切なトークン (Cookie の ASPXAUTH データ) を生成するために、RoR が要求を行う .NET Web サービスを作成するか、または
  2. .NET がトークンを生成するために使用する方法を RoR がエミュレートする方法を見つけてください。そうすれば、Cookie に値を設定でき、ユーザーが ASPX ページにアクセスしたときにユーザーを再認証する必要がなくなります。

2番が望ましいですが、Googleで3〜4時間検索してもその方法が見つからないので、2番を達成する方法はありますか? それ以外の場合は、前者を実行するか、別の方法を試します。提案、コメント、または私がまだ検討していない代替オプションを事前にありがとう.

[1] Python で .ASPXAUTH Cookie を作成する方法 [2] http://msdn.microsoft.com/en-us/library/ff649308.aspx

4

2 に答える 2

0

ASP.NETは認証Cookieを設定します。ASP.NET Cookieと一緒に設定できる独自のセキュリティCookieを作成することもできます(ログインコードを乗っ取るだけです)。次に、このCookieにアクセスして、ユーザーがログインしているかどうかを確認できます。

于 2012-06-21T23:29:38.277 に答える
0

これは完全な答えではないので、厳しすぎないでください。ただし、コメントでもないので、次のようにします。

RoRコンテンツをどのようにホストしていますか、IISまたは別の方法で使用していますか?

両方のコンテンツがIISの同じサイト/仮想ディレクトリから実行され、グローバルASPハンドラーを介して認証を使用してから、クエリを正しいハンドラーに渡すことが可能かどうかを調査します。

すべてのトラフィックをキャッチする汎用ハンドラーを作成することが可能であり、その方法で認証を実装できます。この仕組みは、使用しているIIのバージョンとRoRコンテンツの提供方法によって異なります。

于 2012-06-21T23:31:10.830 に答える