我正在为SecondClass(int x) : FirstClass(x, "second") {
和IEventSink
实现TokenIssuedSuccessEvent
。
我可以使用UserLoginSuccessEvent
来获取主题ID,但我也想获取发行人。不幸的是,TokenIssuedSuccessEvent.SubjectId
声明本身并未在事件中公开。
在浏览IdentityServer代码时,我看到sub
确实来自SubjectId
行中的ClaimsPrincipal
。
我当时想我也许可以在SubjectId = response.Request.Subject.GetSubjectId();
中使用HttpContext
从HttpContext.User.Claims
获取当前的索赔主体,但是这些索赔为空,所以我猜它没有设置
查看IdentityServer日志时,我可以看到IEventSink
正在处理声明。
DefaultClaimsService
如何获得这两个事件的声明,或者至少是2019-09-02 21:34:12 Debug] IdentityServer4.Services.DefaultClaimsService
Getting claims for access token for client: SomeClientId
TokenIssuedSuccessEvent was received in event sink
TokenIssuedSuccessEvent was received in event sink
[2019-09-02 21:34:12 Debug] IdentityServer4.Endpoints.TokenEndpoint
Token request success.
声明?