4

ユーザーが管理者グループのフォーム認証でログインしている場合、キャッシュを回避したいと考えています。

キャッシュ属性をオーバーライドし、コントローラー レベルで適用しました。ただし、メソッド NonAdmin は validationcallback 経由では呼び出されません!

public class OutputCache_NonAdmin : DonutOutputCacheAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        HttpContext.Current.Response.Cache.AddValidationCallback(NonAdmin, null);
        base.OnActionExecuting(filterContext);
    }

    private void NonAdmin(HttpContext httpContext, object data, ref HttpValidationStatus httpValidationStatus)
    {
        //-- METHOD DOES NOT GET CALLED!
        httpValidationStatus = FormsAuthenticationService.IsLoggedIn("Admin") 
            ? HttpValidationStatus.IgnoreThisRequest 
            : HttpValidationStatus.Valid;
    }
}

ユーザーがログインしているときに非キャッシュを実現するにはどうすればよいですか?

4

0 に答える 0