BEACHSIDE BLOG

Azure と GitHub と C# が好きなエンジニアの個人メモ ( ・ㅂ・)و ̑̑

ASP.NET MVC5で最初にやったこと2014冬のメモ

f:id:beachside:20150206222149j:plain
メモに残しておこうと思ってたら年越して2015年2月ですね。社畜業務でシャチークシャチークしていると時が経つのは早いものです。

開発する際に最初にやったことのメモで、この業界のメイド王と名高いしばやんさんの雑記の内容がほとんどです。

これを書いているときに使っているのは、

やりたいことは、

  • セキュアなごにょごにょ
  • ヘッダーのごにょごにょ
  • ごにょごにょ...

難しいことは何もやってないので、変更した設定などの意味についてはふれません。ただただ設定したことを書きます。

Global.asaxの編集

Application_Startメソッド内に以下の内容を追加します。
そして、Application_PreSendRequestHeadersメソッドを追加します。
ヘッダーの処理関連と他諸々...。

protected void Application_Start()
{
    // 上の方は略

    ViewEngines.Engines.Clear();
    ViewEngines.Engines.Add(new RazorViewEngine());
    AntiForgeryConfig.CookieName = "token";
    AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
}

protected void Application_PreSendRequestHeaders()
{
    Response.Headers.Remove("Server");
    Response.Headers.Remove("X-AspNetMvc-Version");
}

App_Start/RouteConfigの編集

ここでは、RegisterRoutesメソッド内に以下のコードを追加します。
urlをlowercaseにするのと、トレイリングスラッシュ。

public static void RegisterRoutes(RouteCollection routes)
{
    // 上の方は略

    routes.LowercaseUrls = true;
    routes.AppendTrailingSlash = true;
}

WebConfigの編集

認証クッキー絡みの設定などです。

<system.web>
    <httpRuntime targetFramework="4.5" enableVersionHeader="false" />
    <authentication mode="Forms">
        <forms requireSSL="true" />
    </authentication>
    <httpCookies requireSSL="true" />

あと、 SSLはもちろん有効にしてます。

ヘッダー絡みの変更については、Application_PreSendRequestHeadersメソッドで一元管理しようかなーとかも思いましたが、「まいっか」という理由でやめました。
あと、
ASP.NET MVCでResponse Headerのサーバーバージョンをどうやって隠しますか? - のんきネコ - 博客园
で書いてある404エラー時にヘッダーにサーバーのバージョンがでちゃう事件は、現在の環境では起こらないので、どっかで誰かが改善してくれてたんだなと思ってます。
→2015/1追記ですが、結果として上のリンクのCustomHeaderModuleつくる対応、やるべきって判断になりました!。