Я использую SocialBootstrapApi ServiceStack и содержит класс CustomUserSession, который я могу использовать для переопределения метода OnRegistered. Я хочу переопределить его, потому что я пытаюсь получить информацию о регистрации, чтобы я мог опубликовать событие, зарегистрированное новым пользователем. Этот обработчик предоставляет экземпляр RegistrationService, который обрабатывал регистрацию, но не имеет ничего о самом запросе регистрации или результирующем экземпляре UserAuth. Например, я хотел бы получить адрес электронной почты, используемый для регистрации.Переопределение IAuthSession OnRegistered handler
public override void OnRegistered(IServiceBase registrationService)
{
base.OnRegistered(registrationService);
// Ideally, I could do get the registered user's primary e-mail address from the UserAuth instance.
var primaryEmail = ((RegistrationService) registrationService)
.UserAuthRepo
.GetUserAuth(this, null) //<--- 'this' is a mostly empty session instance
.PrimaryEmail;
}
Это, конечно, не работает, так как экземпляр сеанса я использую для вызова GetUserAuth не содержит необходимую информацию аутентификации, чтобы быть полезными для поиска информации об аутентификации пользователя. Поэтому GetUserAuth возвращает null, как и следовало ожидать. Итак, как мне получить эту информацию? Было ли неправильным оформление для обработчика OnRegistered экземпляра UserAuth, созданного RegistrationService?
public interface IAuthSession
{
...
void OnRegistered(IServiceBase registrationService, UserAuth userAuth); // <-- new signature
...
}
Это было бы удобно! :)
Возможно, есть еще один способ сделать это?
Заранее спасибо.