我为我的API创建了一个范围实例。 在身份验证和授权部分,我识别并设置userInfo(信息来自发送的API-Key和数据库......)
对于Auth部分似乎工作正常。但是当请求的Controlled在行时我得到一个新实例,请参阅log:
11 PostEntry; Username: guest; Session-ID: ca6f6b4d-dc4a-41d5-9ac7-d85c5215255d
10 Error-Controller-Constructor; Username: guest; Session-ID: ca6f6b4d-dc4a-41d5-9ac7-d85c5215255d
9 AuthorizeAsync; Username: testuser; Session-ID: b7024903-26f5-47ee-bfc0-7b7a52adec71
8 Username: testuser; ID: b7024903-26f5-47ee-bfc0-7b7a52adec71
7 Return
6 Start; Parameter[apiKey: 0330B900-0420-1337-ADCB-2DC70A89EEE3
5 HandleAuthenticateAsync; Username: guest; Session-ID: b7024903-26f5-47ee-bfc0-7b7a52adec71
4 Start; Username: guest; ID: b7024903-26f5-47ee-bfc0-7b7a52adec71
3 AuthorizationService-Constructor; Username: guest; Session-ID: b7024903-26f5-47ee-bfc0-7b7a52adec71
2 ApiKeyAuthenticationHandler; Username: guest; Session-ID: b7024903-26f5-47ee-bfc0-7b7a52adec71
1 Username: guest; Session-ID: b7024903-26f5-47ee-bfc0-7b7a52adec71
从第9行到第7行,userInfo对象被设置为相应的数据。但是当控制器在行(第11/10行)时,会有一个新实例,可以通过新的Session-ID看到。会话ID在对象的构造函数(Guid.New()
)中设置。
的Starup:
services.AddScoped<Identity.IUserInfo, Identity.UserInfo>();
亲切的问候