У меня есть сервер, работающий для идентификации только для аутентификации, и я хочу регистрировать каждый логин пользователя.Я прочитал документ Identity и попытался использовать IEventSink
.Это должно быть легко, но Логин продолжает работать без вызова EventSink.Должен ли я где-нибудь зарегистрировать свой класс?Чего мне не хватает?
var builder = services
.AddIdentityServer(options =>
{
options.Events.RaiseSuccessEvents = true;
}
)
.AddInMemoryIdentityResources(Config.GetIdentityResources())
.AddInMemoryApiResources(Config.GetApis())
.AddInMemoryClients(Config.GetClients())
.AddAspNetIdentity<ApplicationUser>()
.AddOperationalStore(options =>
{
options.ConfigureDbContext = b =>
b.UseMySql(Configuration.GetConnectionString("DefaultConnection")
);
options.EnableTokenCleanup = true;
});
Это EventSink, который я создал:
public class MyEventSink : IEventSink
{
public Task PersistAsync(Event evt)
{
if (evt.Id.Equals(EventIds.TokenIssuedSuccess))
{
var _test = evt as TokenIssuedSuccessEvent;
}
throw new System.NotImplementedException(); // shouldn't even login
return Task.CompletedTask;
}
}