多くの[RequireHttps]
.
しかし、デバッグするときは、それらの多くをさまざまな場所 (コントローラー) でコメントする必要があります。コードの準備ができたら、すべてのコメントを削除する必要があります。
そのため、時間がかかり、コメントを外すのを忘れることもあります[RequireHttps]
:)
私の質問は、この問題を解決するためのベスト プラクティスはどれですか?
ありがとうございました!
多くの[RequireHttps]
.
しかし、デバッグするときは、それらの多くをさまざまな場所 (コントローラー) でコメントする必要があります。コードの準備ができたら、すべてのコメントを削除する必要があります。
そのため、時間がかかり、コメントを外すのを忘れることもあります[RequireHttps]
:)
私の質問は、この問題を解決するためのベスト プラクティスはどれですか?
ありがとうございました!
すべての使用法についてステートメントを入力したくない場合#if
は、デバッグ ビルドではノーオペレーションでありRequireHttps
、リリース ビルドでは単純なサブクラスである新しい属性を作成できます。
#if DEBUG
public class ReleaseRequireHttpsAttribute : Attribute
{
// no-op
}
#elif
public class ReleaseRequireHttpsAttribute : RequireHttpsAttribute
{
// does the same thing as RequireHttpsAttribute
}
#endif
[RequireHttps]
次に、すべてを検索して置換し[ReleaseRequireHttps]
、それを新しいメソッドに使用します。
この問題を解決するための「ベスト プラクティス」について尋ねられたので、この場合のベスト プラクティスは、属性をそのままにして、デプロイしたコードとまったく同じコードをデバッグすることです。他の回答 (すべてうまくいきます) は、コードをデバッグし、展開する前にコードを変更することを意味します。これは決して良い考えではありません。
この場合、IIS Express を使用すれば、SSL 経由で Web プロジェクトを簡単にデバッグできます。これは、Visual Studio 2010 Web サーバーのドロップイン代替品ですが、安全な HTTP サポートなど、IIS のほとんどの機能を備えています。詳細については、次を参照してください。
http://learn.iis.net/page.aspx/901/iis-express-faq/
インストールが完了すると、IIS Express を使用するようにプロジェクトを切り替え、IIS Express 構成で https バインディングをセットアップし、通常どおりステップスルーできます。
#if (C# リファレンス)を使用し、デバッグとリリースの構成がありました。
次にあなた:
#if RELEASE
[RequireHttps]
#endif
void methodHere()
{
...
}
以下により、機能をドライアップし、プリプロセッサ ディレクティブでコントローラーを汚染する必要を防ぐことができます。
public class CustomRequireHttpsAttribute : RequireHttpsAttribute
{
/* override appropriate method with preprocessor directives */
}
[CustomRequireHttps]
public ActionResult Foo(string foo) { /* ... */ }
[CustomRequireHttps]
public ActionResult Bar(string bar) { /* ... */ }
#if RELEASE ... #endif
構造を使用します。
#if RELEASE
[RequireHttps]
#endif
void YourMethod()
{
...
}