第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ASP.NET Core 2.1 中的 Scaffold Identity UI 并添加全局過濾器

ASP.NET Core 2.1 中的 Scaffold Identity UI 并添加全局過濾器

C#
qq_花開花謝_0 2022-06-12 11:09:07
我有一個 ASP.NET Core 2.1 應用程序,我在其中使用 Identity 腳手架,如此處所述現(xiàn)在我有一個 OnActionExecuting 的全局過濾器public class SmartActionFilter : IActionFilter{    public void OnActionExecuting(ActionExecutingContext filterContext)    {        ...    }}在 startup.cs 我配置過濾器如下public void ConfigureServices(IServiceCollection services){    services        .AddMvc(options =>        {            options.Filters.Add(new AddHeaderAttribute("Author", "HaBo")); // an instance            options.Filters.Add(typeof(SmartActionFilter)); // by type            // options.Filters.Add(new SampleGlobalActionFilter()); // an instance        })        .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)        .AddJsonOptions(options =>        {            options.SerializerSettings.ContractResolver = new DefaultContractResolver();            options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;        });}此過濾器可用于所有操作方法,但不適用于身份區(qū)域中的操作方法。如何讓全局過濾器對身份區(qū)域中的所有頁面起作用?
查看完整描述

1 回答

?
catspeake

TA貢獻1111條經(jīng)驗 獲得超0個贊

在ASP.NET Core中的過濾器的開頭段落中,您將看到以下注釋:


重要的


本主題不適用于 Razor 頁面。ASP.NET Core 2.1 及更高版本支持Razor 頁面的IPageFilter和IAsyncPageFilter。有關詳細信息,請參閱Razor 頁面的篩選方法。


這解釋了為什么您的SmartActionFilter實現(xiàn)僅針對操作而不是針對頁面處理程序執(zhí)行。相反,您應該實施IPageFilter或IAsyncPageFilter按照注釋中的建議:


public class SmartActionFilter : IPageFilter

{

    public void OnPageHandlerSelected(PageHandlerSelectedContext ctx) { }


    public void OnPageHandlerExecuting(PageHandlerExecutingContext ctx)

    {

        // Your logic here.

    }


    public void OnPageHandlerExecuted(PageHandlerExecutedContext ctx)

    {

        // Example requested in comments on answer.

        if (ctx.Result is PageResult pageResult)

        {

            pageResult.ViewData["Property"] = "Value";

        }


        // Another example requested in comments.

        // This can also be done in OnPageHandlerExecuting to short-circuit the response.

        ctx.Result = new RedirectResult("/url/to/redirect/to");

    }

}

注冊SmartActionFilter仍然以與您的問題中所示相同的方式完成(使用MvcOptions.Filters)。


如果您想為操作和頁面處理程序運行它,看起來您可能需要同時實現(xiàn)IActionFilterand IPageFilter。


查看完整回答
反對 回復 2022-06-12
  • 1 回答
  • 0 關注
  • 179 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號