ASP.NET MVC

Azure Web Apps + ASP.NET MVC のアプリログ出力

Azure Web Apps + ASP.NET MVC でアプリケーションログを出力する場合、log4net などのログライブラリを使用するのも可能ではあるが、Azure のビルトインとして用意されている App Service ログを使用した方が、ちゃんとログ出力されるかなど余計な心配をし…

Azure Web Apps + ASP.NET での初回ページ表示遅延対策

Azure Web Apps + ASP.NET の組み合わせでシステムを構築した場合、ページの初回表示が非常に遅い現象に見舞われる事がある。 どれぐらい遅いかと言うと、大体 10 ~ 30 秒ぐらい待つ感じ。 主な原因は下記 2 つ。 Azure Web Apps の「常時接続」設定がオフ…

ASP.NET MVC アプリの脆弱性対策について

対象 ASP.NET MVC 5 (.NET Framework) + Azure Web Apps を対象とする。 不要なレスポンスヘッダーの削除 既定のままだと、レスポンスヘッダーには以下のような ASP.NET を示唆する情報が出力される。 Server: Microsoft-IIS/10.0 X-AspNet-Version: 4.0.303…

ASP.NET MVC の認証周りについて

ASP.NET のセッションは Session Fixation 問題を抱えるため、認証には認証用に用意されている Form 認証を使用する。 MVC で認証ありサイトを作る時は、RegisterGlobalFilters() で AuthorizeAttribute を Filter に追加して、基本的にサイト全体で認証必要…

ASP.NET MVC のユーザー入力値項目について

MVC のユーザー入力値項目は、基本的には全てモデルで受けて処理するようにする。 その上で、モデルの各プロパティに対して Required, StringLength, RegularExpression 等の DataAnnotation を使って、入力制限をかける。 また、既定で危険な可能性のある文…

ASP.NET MVC で条件付きの必須チェックを行う

サーバーサイドの検証だけで良ければ、下記ブログのクラスを追加して使用できる。 Flexible Conditional Validation with ASP.NET MVC 3 – Stuart Leeks

ASP.NET MVC のリダイレクトについて

リダイレクト方法は主に以下の 2 つ。 Redirect("URL パス") RedirectToAction("アクション", "コントローラー", [エリア名など]) 基本的には全て、RedirectToActionメソッドを使えば良い(エリアも考慮されるので)。 ただこれだと、ルーティングで default…

ASP.NET MVC の TempData について

ASP.NET MVC の TempData は Session とは分かれているため、例えば Session.Clear メソッドの実行は TempData には影響しない。 但し、使用するセッション ID は同じなので、Session.Abandon メソッドを実行すると Session, TempData 共に無効になる。