9

これはおそらく初歩的な質問ですが;

営業時間外にのみアクセスを許可したい ActionResult があるとします。

ActionResult をカスタム属性で装飾したいとしましょう。

したがって、コードは次のようになります。

[AllowAccess(after="17:00:00", before="08:00:00")]
public ActionResult AfterHoursPage()
{
    //Do something not so interesting here;

    return View();
}

これをどのように機能させるのです

カスタム属性の作成についていくつか調査しましたが、それらを使用する方法が少し不足していると思います。

ただし、それらの作成と使用についてはほとんど何も知らないと仮定してください。

4

2 に答える 2

14

これを試してください(テストされていません):

public class AllowAccessAttribute : AuthorizeAttribute
{
    public DateTime before;
    public DateTime after;

    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        if (httpContext == null)
            throw new ArgumentNullException("httpContext");

        DateTime current = DateTime.Now;

        if (current < before | current > after)
            return false;

        return true;
    }
}

詳細はこちら: http://schotime.net/blog/index.php/2009/02/17/custom-authorization-with-aspnet-mvc/

于 2009-10-08T04:13:53.523 に答える
2

.net mvc で探しているのはアクション フィルターです。

あなたのケースでは、ActionFilterAttribute クラスを拡張し、OnActionExecuting メソッドを実装する必要があります。

アクション フィルターの適切な紹介については、http ://www.asp.net/learn/mvc/tutorial-14-cs.aspx を参照 してください。

また、少し似たものについては、ASP.NET MVC - ユーザーのログインに外部 Web サイトを使用した CustomeAuthorize フィルター アクションを参照してください。

于 2009-10-08T04:12:11.107 に答える