0

ユーザーが必要のない (そしてログインしていない) ページを参照したときに、MVC3 サイトを HTTPS から HTTP にリダイレクトするようにしようとしています。サイト全体を HTTPS で実行する負荷をかけたくありませんが、それが私が行かなければならない方法のように見えます。

私はリモート デバッグとシンボルで多くの問題を抱えていましたが、1985 年にさかのぼり、デバッグにメッセージ ボックスに相当するものを使用して、次の結論に達しました。

if (filterContext.ActionDescriptor
     .GetCustomAttributes(typeof(RequireHttpsAttribute), true)
     .Any()
   )
{
   return true;
}
return false;

常に false を返します。

コントローラーの定義は次のように始まります。

[FilterIP(
    ConfigurationKeyAllowedSingleIPs = "AllowedAdminSingleIPs",
    ConfigurationKeyAllowedMaskedIPs = "AllowedAdminMaskedIPs",
    ConfigurationKeyDeniedSingleIPs = "DeniedAdminSingleIPs",
    ConfigurationKeyDeniedMaskedIPs = "DeniedAdminMaskedIPs"
)]
[RequireHttps]
public class AccountController : Controller
{

また、このコントローラーのアクションでは機能しないようです (ただし、SSL に正常にルーティングされます)。

助言がありますか?私が自分のヌーベリーとして認識しているものに対する答えを知りたいです;)

4

2 に答える 2

0

私の問題は、に公開されたサーバー上のバインディングに関連していることが判明しました。ステージと本番環境に同じサーバーを使用し、ステージのhttpsバインディングが設定されていないため、httpsページを呼び出すたびに、本番サイトに解決されていました(同じように見えたため、見つけるのが困難でした)。

バインディングを追加すると、すべて解決されました。私のコードは大丈夫でした...

于 2012-08-30T13:06:48.563 に答える
0

カスタム NotRequireHttpsAttribute チュートリアル

上記のリンク投稿を使用してカスタム属性を実装し、https から http にリダイレクトします。お役に立てれば。

于 2012-08-28T04:16:28.760 に答える