以下の内容はhttps://blog.nakajix.jp/entry/2016/06/11/090000より取得しました。


ASP.NET MVCで簡単に認証チェックを追加する

タイトルがイマイチなのは勘弁してもらうとして、Webアプリでログイン済みでないとアクセスできないページってあると思います。

そんな時、

public class HomeController : Controller
{
    public ActionResult About()
    {
        if (認証されてない) {
            return new HttpUnauthorizedResult();
        }
        return View();
    }
}

なんて書いてもいいですが、本来やりたい処理が埋もれちゃいますし、メソッドの中を見ていかないといけないので分かりづらいです。

AuthorizeAttributeを派生させて使う

AuthorizeAttributeを派生させて、そこで認証チェックを行うようにします。

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
public class MyAuthorizeAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        /* 認証チェックしてOKなら return true; */
        return false;
    }
}

コントローラのメソッドがシンプルに

上で作成したMyAuthorizeAttributeを使用して認証したいメソッドに属性を付けてやります。

public class HomeController : Controller
{
    [MyAuthorize]
    public ActionResult About()
    {
        return View();
    }
}

だいぶすっきりしました。

コントローラ全体にも適用出来る

下のようにコントローラに属性を付けてやるとそのコントローラの全てのメソッドに適用されます。

[MyAuthorize]
public class HomeController : Controller
{
    public ActionResult About()
    {
        return View();
    }
}

まとめ

ちょっとしたサイトなら冒頭に書いたような方法でも困ることはないかもしれませんが、それなりにページが増えてくると徐々に効いてくると思います。 便利なものは積極的に使っていきたいものですね。

おしまい。




以上の内容はhttps://blog.nakajix.jp/entry/2016/06/11/090000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14