gpt4 book ai didi

asp.net - 如何将范围服务注入(inject)到 IClaimsTransformer 的实现中?

转载 作者:行者123 更新时间:2023-12-02 21:28:17 25 4
gpt4 key购买 nike

ASP.Net core 允许您使用 IClaimsTransformer 的实现来修改 ClaimsPrincipal。我知道你是这样注册的:

app.UseClaimsTransformation(o => o.Transformer = new MyClaimsTransformer());

但是在 MyClaimsTransformer 中我需要访问我的数据库。我的问题是如何注入(inject)或访问在 MyClaimsTransformer 内部提供数据访问的范围服务?

最佳答案

@dovydas-navickas 的答案中链接的问题现已解决。

在 ASP.NET Core 1.0-RC2 中,接口(interface) IClaimsTransformer已更新为 ClaimsTransformationContext它提供了一种通过 HttpContext 访问服务的方法。

例如,如果您需要访问内存缓存,可以这样检索

public Task<ClaimsPrincipal> TransformAsync(ClaimsTransformationContext context)
{
IMemoryCache cache = context.Context.RequestServices.GetService<IMemoryCache>();

// ... the rest of the implementation.
}

关于asp.net - 如何将范围服务注入(inject)到 IClaimsTransformer 的实现中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35665453/

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