使用自定义IClaimsTransformer时何时发生声明转换?

时间:2017-02-23 23:03:51

标签: asp.net-core asp.net-identity claims-based-identity

我正在使用ASP.NET Core和一个自定义IClaimsTransformer,该Configure在我的Startup课程ClaimsTransformationMiddleware期间注册UseClaimsTransformation。我的印象是,在用户首次登录时添加并可能会转换声明(类似于我在Google身份验证中间件中看到的声明)。

我在GitHub上找到ClaimsTransformationMiddleware调用已通过DateTime.Now.Millisecond.ToString()注册的自定义声明转换器。

如果没有注销,我可以更改索赔的值,例如,硬编码索赔值并重新编译应用程序。换句话说,声明在以下时间更新:

  1. 启动应用并登录,然后查看显示声明的页面
  2. 我更改代码以在变换器中设置不同的值
  3. 我重新启动应用并刷新页面
  4. 此外,如果我将变换中的声明值更改为ClaimsTranformationOptions,则会在每个页面请求上更改该值,而不重新编译应用程序。

    这似乎推断自定义转换发生在每个请求上,而不是登录。这是正确的吗?

    有没有办法以只在登录时发生的方式注册转换? public class GetActivity { ChildClass childclass; @Inject public GetActivity(ChildClass childClass) { this.childClass = childclass; } String id = childClass.get(id); .... } public class SaveActivity { ChildClass childclass; @Inject public SaveActivity(ChildClass childClass) { this.childClass = childclass; } childClass.save(id); .... } 中没有其他选项。

0 个答案:

没有答案