2011-02-10 22 views
2

ルーティングとメンバーシップを使用するASP.NETページでResponse.Redirectを使用しようとしています。ログインしていないユーザーをメインページにリダイレクトします。これは、コンテンツに基づいて匿名ユーザーに表示されることがあるページです。ログインページにリダイレクトすると、ブラウザは無効なコンテンツでreturnurlを埋めます。Response.Redirect ReturnUrl

質問を送信する前にReturnURLを削除するにはどうすればよいですか?または、適切なリンクが含まれるように修正するにはどうすればよいですか?

ページが別のディレクトリにあります。それは正しくリダイレ​​クトされますが、ReturnURLは無効なパスに設定されます。

ReturnUrlはフォルダに設定されています。クエリパラメタを持つページにもルートを作成しないでください。それは私がフォルダアクションを持って

を何をやっているされて

UPDATE

わかりました。私はLogin.aspxにリダイレクトしています。 login.aspxにリダイレクトしますが、returnurlをActions/Login.aspxに設定します。これは絶対に間違っています。

それは2つのアカウントで間違っている:

  1. login.aspxのアクションに存在しdoens'tは、それが部分的に

    固定再帰的なリダイレクト

アップデートを作成します

  • をフォルダさて、私は別のフォルダにあり、適切なページにリダイレクトしていなかったからです。私はしかし、それはルーティングされたパスににreturnurlを設定されていない代わりに「../login.aspx」の「login.aspxの」

    を持っていた

    。それはリターンを取り除いています。私は100%確信しているわけではありませんが、デザインの決定としてこれを行うことに決めたかもしれません。

  • +0

    を使用して戻りURLを指定示したコードの一部である時に何をするかを見てください。どのようにリダイレクトを実装しましたか?ルーティングルールであなたがリダイレクトしているルートがOKになっていますか?そしてもちろん、**あなたの質問は何ですか? – Oded

    +0

    @oded詳細情報を更新 –

    +0

    関連するコードを投稿できますか? – Oded

    答えて

    2

    あなたが直面している問題の根太さを理解していませんが、Server.UrlEncodeを返信してURLを返すことができなかった可能性があります。 Server.UrlEncode

    以下

    http://msdn.microsoft.com/en-us/library/ms525738(v=vs.90).aspx

    どのようにこの無効な内容は何ですか?Server.UrlEncode

    Response.Redirect(FormsAuthentication.LoginUrl + "?ReturnUrl=" + 
    Server.UrlEncode(Request.Url.ToString())) 
    
    関連する問題