ASP.NET Core Scoped用户实例

时间:2017-04-03 09:12:30

标签: c# asp.net service dependency-injection asp.net-core

我为我的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>();

亲切的问候

0 个答案:

没有答案