我正在使用ServiceStack的SocialBootstrapApi,它包含一個類CustomUserSession,我可以用它來覆蓋OnRegistered方法。我想覆蓋它,因爲我正在嘗試獲取有關注冊的信息,以便我可以發佈新用戶已註冊的事件。此處理程序提供RegistrationService的一個實例,用於處理註冊,但不提供有關注冊請求本身或生成的UserAuth實例的任何內容。例如,我想獲取用於註冊的電子郵件地址。覆蓋IAuthSession OnRegistered處理程序
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處理程序是否被設計爲由RegistrationService創建的UserAuth實例傳遞?
public interface IAuthSession
{
...
void OnRegistered(IServiceBase registrationService, UserAuth userAuth); // <-- new signature
...
}
這樣很方便! :)
或者還有另外一種方法可以解決這個問題嗎?
在此先感謝。