8

[RequireSSL]属性を使用してASP.NETMVCでSSLページにアクセスする簡単な方法を知っていますが、その逆を行うための最良の方法に少し混乱しています。

私のサイトにはヘッダーバーに多くのリンクがあり、それらのリンクのほとんどはSSLを必要とせず、SSLを使用したくありません。

futuresプロジェクトでは、を使用してSSLページに自動的にリダイレクトするのは非常に簡単[RequireSSL(Redirect=true)]ですが、このコンテキストから抜け出して自動的にhttpにリダイレクトするのは簡単ではないようです。

私は何が欠けていますか?

4

3 に答える 3

4

あなたは何も見逃していません。このためのすぐに使える機能はありません。RequireSslAttributeソースを取得して変更することにより、独自のソースを簡単に作成できます。

于 2009-07-21T17:49:06.790 に答える
1

他の場所での重複した質問からの回答:

asp.netmvcでhttpsからhttpモードにステップアウトする方法。

注意:このアプローチを使用することを選択した場合、認証CookieはHTTPに切り替えた後、プレーンテキストで送信され、他の誰かに盗まれて使用される可能性があります。これを参照してください。言い換えると、これを銀行のサイトで使用している場合は、httpに切り替えると最初にユーザーがログアウトすることを確認する必要があります。

public class DoesNotRequireSSL: ActionFilterAttribute 
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext) 
        {
                var request = filterContext.HttpContext.Request;
                var response = filterContext.HttpContext.Response;

                if (request.IsSecureConnection && !request.IsLocal) 
                {
                string redirectUrl = request.Url.ToString().Replace("https:", "http:");
                response.Redirect(redirectUrl);
                }
                base.OnActionExecuting(filterContext);
        }
    }
于 2009-11-06T04:18:43.767 に答える
0

これは読む価値があります(特に、不注意にhttpからに切り替えることのセキュリティへの影響を理解するためにhttps

ASP.NETを使用した部分的にSSLで保護されたWebアプリ-MVC固有ではありませんが、関連するセキュリティ上の懸念事項

ASP.NETMVCを使用した部分的なSSLWebサイト-MVC対応

全体的にかなり複雑な問題です。私がやりたいことすべてに対する真の解決策はまだ見つかりませんが、これらの記事は他の人に役立つかもしれないと思いました。

于 2009-11-06T04:12:40.783 に答える