gpt4 book ai didi

asp.net-core - 如何像Controller一样使用AuthorizeFilter中的内存缓存?

转载 作者:行者123 更新时间:2023-12-02 03:46:10 25 4
gpt4 key购买 nike

我有一个全局 AuthorizeFilter 如下:

public class MyAuthorizationFilter : AuthorizeFilter { 

public MyAuthorizationFilter(Authorization policy) : base(policy) { }

public override Task OnAuthorizationAsync(AuthorizationFilterContext context) { ... }

}

以及我在 Startup.cs 中所做的事情:

services.AddMvc(x => {
x.Filters.Add(new MyAuthorizationFilter(new AuthorizationPolicyBuilder().RequireAuthenticateUser().Build()));
});

我也添加了该服务

services.AddMemoryCache();

过滤器似乎不像 Controller 那样支持 DI。

谢谢。

最佳答案

在asp.net core中,支持对过滤器的依赖注入(inject)。阅读官方文档中的“依赖注入(inject)”部分。 Filters in ASP.Net Core

您需要实现服务过滤器或类型过滤器。

解决服务的另一种方法是这样的

var service = filterContext.HttpContext.RequestServices.GetService<IMemoryCache>();

关于asp.net-core - 如何像Controller一样使用AuthorizeFilter中的内存缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46685688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com