2011-12-21 32 views
1

"first.aspx"と "second.aspx"というページがあります。今すぐfirst.aspxから、私は "Response.Redirect()"と "Third.aspx"をやっています。また、second.aspxからsimlarlyして、 "Response.Redirect()to Third"というリンクボタンを使っています。 。ASPXどのように私はこれをacheiveすることができる唯一の 『first.aspx『私はから来たときに』third.aspx」。しかし、私は上のボタンを無効にしたい』親ページ参照を取得する方法

答えて

1

あなたが使用して試みることができる:。

var enabled = Page.Request.UrlReferrer.ToString().Contains("first.aspx"); 
+0

私の経験から、すべてのブラウザが正しいhttpヘッダーを使用しないため、信頼できる解決策ではありません。 –

1

あなたはリクエストのリファラをチェックすることができますが、それは詐称される可能性があります:。

Request.UrlReferrer 

それとも、urlパラメータを渡すことができます

クライアント側のパラメータの受け渡しに頼らない場合は、サーバーのユーザーセッションに最後のページを保存し、third.aspxページでそのページを確認できます。

0

ときThird.aspxするfirst.aspxリダイレクトから来る?=最初からThird.aspxするsecond.aspxリダイレクトから来るとき?=秒から、その後、あなたのボタンが

+0

これらの反論のどれも働いていませんか? window.openでは、これらのクエリ文字列参照を渡すことができますが、response.redirectは機能しません。 @ジャスティン私はあなたがurlrefernce.tostring()後に持っていない2003年のビジュアルスタジオを使用しています。プロパティを含むようなものはありません。 – user993935

+0

Page.Request.UrlReferrer.ToString()は私にページ参照を与えていません。私はそれが動作することを知っているしかし、response.redirectのためには動作しません – user993935

0
を有効/無効にするには、GETパラメータを使用しますThird.aspxで

、あなたがから来ているページを示すために、クエリパラメータを追加します。UrlReferrer

0

を確認してください。

Response.Redirect('third.aspx?referrer=first'); 

Response.Redirect('third.aspx?referrer=second'); 
第三中

if (Request["referrer"] == "first"){ 
    button.Enabled = false; 
} 
0

私は@Justin Niessnerの応答を好きですが、別の方法ではなく、当該ボタンのPostBackUrlプロパティを使用するResponse.Redirectを使用してのだろう。これにより、ページがthird.aspxページに「投稿」され、そこから `Page.PreviousPage 'にアクセスできます。前のページの詳しい情報はfound on MSDNです。

http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage.aspx

編集:
ボーナスPostBackUrlプロパティを使用することが標準の.NET検証コントロールを起動すると@Jan言及なりすましを防ぐことができますということです。それは不可能ではありませんが、確かにそれはより困難になります。

関連する問題