2012-01-05 67 views
2

2つのプロジェクトを持つVS 2011ソリューションファイルがあります。それぞれ、Webアプリケーションのプロジェクトファイルです。 1つは古いバージョンのアプリケーションで、もう1つは新しいバージョンです。ユーザーが古いバージョンにサインインすると、メンバーシップによって新しいバージョンにリダイレクトされる可能性があります。彼らが新しいウェブサイトに着陸するとき、彼らは認証を通過する必要はなく、代わりにアプリ内の自分のページに直接行くべきである。response.redirectからasp.net web appへ

これを処理するには、ユーザーが認証されたことを示すクエリ文字列とともに、古いアプリケーションのresponse.redirectを使用しています。

古いバージョンのコード:

Response.Redirect(sURL + "?Auth=" + sAuth, false); 

私は新しいアプリのlogin.aspx.csのPage_Loadイベントにクエリ文字列をチェックしています(クエリ文字列認証= trueの場合」のようなもの、次のに進みますページ")。しかし、私はまだログインページを取得します。新しいアプリのPage_Loadイベントに

コード:

if (Page.IsCrossPagePostBack) 
{ 
    string sAuthenticate = Request.QueryString.Get("Auth").ToString(); 
      if (sAuthenticate == "1") 
      { 
       ByPassAuthentication(); 
      } 
} 

がどのように私は、ログインページをバイパスすることができますか?

+1

まず、クエリ文字列は安全な認証トークンではありません。 FormsAuthentication機能でビルドを使用していますか?または、完全にカスタム認証を使用していますか? – MatthewMartin

+0

したがって、2番目のアプリケーションURLを入力してクエリ文字列「Auth = 1」を使用すると、サイトにアクセスできます...なぜ認証を使用するのですか? – Chandu

+0

@Cyber​​nateそれは私がやっていることです – user1111955

答えて

1

あなたはあなたのソリューションを右クリックすることで、これをデバッグすることができ、その後、あなたの二つのプロジェクトを開始し、[プロパティ]をクリックします。こちらをご覧くださいRunning two projects at once in Visual Studio。もちろん両方のプロジェクトにブレークポイントを設定してください

0

新しいページの "IsCrossPagePostBack"プロパティをチェックしてみると、ポストバックがリダイレクトだったかどうかを知ることができます。

+0

新しいバージョンのpage_loadでこのプロパティを使用しようとしましたが、運がない...ページはログイン画面を表示し続けます – user1111955

3

これがFormsAuthenticationサイトであると仮定すると、ASP.Netは自動的にFormsAuthenticationにログインしていないユーザーをログインページに戻します。

少なくとも、ユーザーのログイン名も渡す必要があります。

これをクエリ文字列に渡すので、あなたのresponse.redirectだけが有効な要求として処理されるように十分注意する必要があります。クエリ文字列パラメータが何であるかを把握し、企業のCEOとしてログインすることで、ユーザーがログインできないようにする必要があります。

ユーザー名と現在時刻の組み合わせを暗号化し、受信側でタイムスタンプを復号化して比較します。許容範囲外(例えば2分)であれば、ログイン要求を拒否します。

0

「新しい」サイトを入力すると、ユーザーを認証する必要があります。 .NETのフォーム認証を使用して、あなたと仮定すると、あなたはおそらく、あなたがこれを行うと、それはサイトへの後続の要求のために使用されたユーザーのCookieを作成します

FormsAuthentication.SetAuthCookie(userLogin, true); 

このようなコードによる認証クッキーを設定していること作成されました。あなたの場合、「古い」サイト。したがって、新しい認証Cookieを作成するか、認証クッキーを共有する必要があります。認証Cookieはいくつかのニュアンスがあり、面倒なことがあります。

1

多分シングルサインオンが役立つでしょう、私の質問と回答をここでチェックしてください。

Single Sign On

関連する問題