C# 使用Simple Injector检索索赔

C# 使用Simple Injector检索索赔,c#,asp.net-web-api,dependency-injection,ioc-container,simple-injector,C#,Asp.net Web Api,Dependency Injection,Ioc Container,Simple Injector,我正在做的项目是将数据存储在我需要检索的声明中。该项目使用Simple Injector作为其IoC容器,我已经实现了EnableHttpRequestMessageTracking,详细内容见他们的文章: 但是,当试图从声明中获取值作为请求的一部分时,返回null。这是在简单注入器实现之前通过从控制器ActionContext.RequestContext检索值实现的,但该值仅在控制器中可用,并且注入控制器的依赖项需要这些值 更新(实际代码): 现在把这一行: System.Diagnost

我正在做的项目是将数据存储在我需要检索的声明中。该项目使用Simple Injector作为其IoC容器,我已经实现了EnableHttpRequestMessageTracking,详细内容见他们的文章:

但是,当试图从声明中获取值作为请求的一部分时,返回null。这是在简单注入器实现之前通过从控制器ActionContext.RequestContext检索值实现的,但该值仅在控制器中可用,并且注入控制器的依赖项需要这些值

更新(实际代码):

现在把这一行:

System.Diagnostics.Debug.WriteLine(
    PrincipalInformationExtractor.GetInfo(requestContext.Principal, "dbServer"));
在控制器中,如下所示生成一个值:

System.Diagnostics.Debug.WriteLine(
    PrincipalInformationExtractor.GetInfo(ActionContext.RequestContext.Principal, "dbServer"));

关于如何获取这些值的任何输入?

是否至少仍在检索正确的标识名?它只是缺少您的索赔,还是整个委托人都错了?请同时显示工作代码和非工作代码。@Mitch整个委托人都错了,它没有任何身份或索赔信息。@Steven这是允许我共享的代码中的大部分。RequestMessageAccessor看起来与链接文章中的完全相同。上面的代码段来自一个类中的函数,该类将RequestMessageAccessor作为构造函数参数。很抱歉,您不能期望我们猜测您在做什么。请出示密码。
System.Diagnostics.Debug.WriteLine(
    PrincipalInformationExtractor.GetInfo(requestContext.Principal, "dbServer"));
System.Diagnostics.Debug.WriteLine(
    PrincipalInformationExtractor.GetInfo(ActionContext.RequestContext.Principal, "dbServer"));