メインメニューを開く

差分

ASP.NET MVC/フィルター

220 バイト追加, 2014年3月6日 (木) 06:00
[[ASP.NET MVC]]の'''フィルター'''とは、コントローラークラスやアクションメソッド(コントローラークラスのメソッド)に、[[属性]](Attribute)もちいて処理を挿入する機能のことである。
たとえばユーザー認証処理がされている、されていない、などの処理を== 使い道の例 ==[[アクション]]ごとに書いていたのでは面倒、かつ本流ではないソースコードが入りまくり見通しが悪くなるのでフィルター化しておくと便利だという。ごとにユーザー認証処理が「されている」「されていない」などの処理を書いていたのでは面倒、かつ本流ではない[[ソースコード]]が入りまくり見通しが悪くなるのでフィルター化しておくと便利だという。
== 使い道の例 ==たとえばEditアクションはログインしているユーザーのみとする場合は以下のようになる。たとえばEditアクションはログインしているユーザーのみ使えるとする場合は、以下のようにEditアクションにAuthorizeフィルター(アトリビュート)を付ける。
<source lang="csharp">
[Authorize]
== フィルターの種類 ==
[[ASP.NET MVC]]のフィルターは大きく、承認フィルター、アクションフィルター、結果フィルター、例外フィルターの4つに分けられる。のフィルターは大きく分けて、承認フィルター、アクションフィルター、結果フィルター、例外フィルターの4つに分けられる。
=== 承認フィルター ===
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class AuthorizeAttribute
: FilterAttribute, // FilterAttributeを継承して IAuthorizationFilter // IAuthorizationFilterを実装する
{
//...
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.HttpContext.Trace.Write( "(Logging Filter)Action Executing: " + + filterContext.ActionDescriptor.ActionName);
base.OnActionExecuting(filterContext);
{
if (filterContext.Exception != null)
{
filterContext.HttpContext.Trace.Write("(Logging Filter)Exception thrown");
}
base.OnActionExecuted(filterContext);
== 関連項目 ==
* [[ASP.NET MVC]]
** [[ASP.NET MVC/セレクター]]
== 参考文献 ==
<references/>== 外部リンク =={{reflist}}
{{stub}}