我正在綁定在我的一個應用程序中使用域驅動設計,並對用戶驗證有一些疑問。應使用哪一層進行用戶驗證
我有一個叫用戶具有價值對象,如UserCredentials,密碼,ActivationToken等 我也有一個管理用戶數域服務的總根源。 例如放在userRegistration服務看起來是這樣的:
public interface IUserRegistrationService
{
IEnumerable<string> Register(NewUserRequest request);
}
它檢查分配給用戶的註冊過程,並在數據庫中保持用戶的業務規則。
現在我想驗證用戶,所以我創建UserAuthentication域名服務:
public interface UserAuthenticationService
{
IEnumerable<string> Authenticate(AuthRequest request);
}
它需要用戶從資源庫中,檢查業務規則,更新和持續像LastLoginDate用戶數據的變化。
但我有一些懷疑,如果身份驗證過程屬於域本身或它應該屬於應用程序服務,至於我的域,它並不重要如何用戶進行身份驗證。 但另一方面,在此服務中檢查的身份驗證規則屬於我的域規則,因此它們是我的域的組成部分。
那麼你在哪裏把認證放在你的基於DDD的應用中,你對這個問題的解決方案是什麼?