public void Can_save_and_load_externalAuthenticationRecord() { var externalAuthenticationRecord = new ExternalAuthenticationRecord { Email = "Email 1", ExternalIdentifier = "ExternalIdentifier 1", ExternalDisplayIdentifier = "ExternalDisplayIdentifier 1", OAuthToken = "OAuthToken 1", OAuthAccessToken = "OAuthAccessToken 1", ProviderSystemName = "ProviderSystemName 1", Customer = GetTestCustomer() }; var fromDb = SaveAndLoadEntity(externalAuthenticationRecord); fromDb.ShouldNotBeNull(); fromDb.Email.ShouldEqual("Email 1"); fromDb.ExternalIdentifier.ShouldEqual("ExternalIdentifier 1"); fromDb.ExternalDisplayIdentifier.ShouldEqual("ExternalDisplayIdentifier 1"); fromDb.OAuthToken.ShouldEqual("OAuthToken 1"); fromDb.OAuthAccessToken.ShouldEqual("OAuthAccessToken 1"); fromDb.ProviderSystemName.ShouldEqual("ProviderSystemName 1"); fromDb.Customer.ShouldNotBeNull(); }
public virtual void AssociateExternalAccountWithUser(Customer customer, OpenAuthenticationParameters parameters) { if (customer == null) { throw new ArgumentNullException("customer"); } //find email string email = null; if (parameters.UserClaims != null) { foreach (var userClaim in parameters.UserClaims .Where(x => x.Contact != null && !String.IsNullOrEmpty(x.Contact.Email))) { //found email = userClaim.Contact.Email; break; } } var externalAuthenticationRecord = new ExternalAuthenticationRecord() { CustomerId = customer.Id, Email = email, ExternalIdentifier = parameters.ExternalIdentifier, ExternalDisplayIdentifier = parameters.ExternalDisplayIdentifier, OAuthToken = parameters.OAuthToken, OAuthAccessToken = parameters.OAuthAccessToken, ProviderSystemName = parameters.ProviderSystemName, }; _externalAuthenticationRecordRepository.Insert(externalAuthenticationRecord); }
/// <summary> /// 重写此方法用处理昵称(nickname) /// </summary> /// <param name="customer"></param> /// <param name="parameters"></param> public override void AssociateExternalAccountWithUser(Nop.Core.Domain.Customers.Customer customer, Nop.Services.Authentication.External.OpenAuthenticationParameters parameters) { if (customer == null) { throw new ArgumentNullException("customer"); } //find nick name string nickName = null; if (parameters.UserClaims != null) { foreach (var userClaim in parameters.UserClaims .Where(x => x.Name != null && !String.IsNullOrEmpty(x.Name.Nickname))) { //found nickName = userClaim.Name.Nickname; break; } } var externalAuthenticationRecord = new ExternalAuthenticationRecord() { CustomerId = customer.Id, Email = string.Empty, ExternalIdentifier = parameters.ExternalIdentifier, ExternalDisplayIdentifier = nickName, OAuthToken = parameters.OAuthToken, OAuthAccessToken = parameters.OAuthAccessToken, ProviderSystemName = parameters.ProviderSystemName, }; _externalAuthenticationRecordRepository.Insert(externalAuthenticationRecord); }
/// <summary> /// Delete the external authentication record /// </summary> /// <param name="externalAuthenticationRecord">External authentication record</param> /// <returns>A task that represents the asynchronous operation</returns> public virtual async Task DeleteExternalAuthenticationRecordAsync(ExternalAuthenticationRecord externalAuthenticationRecord) { if (externalAuthenticationRecord == null) throw new ArgumentNullException(nameof(externalAuthenticationRecord)); await _externalAuthenticationRecordRepository.DeleteAsync(externalAuthenticationRecord, false); }
public virtual void AssociateExternalAccountWithUser(Account account, OpenAuthenticationParameters parameters) { if (account == null) throw new ArgumentNullException("account"); //find email string email = null; if (parameters.UserClaims != null) foreach (var userClaim in parameters.UserClaims .Where(x => x.Contact != null && !String.IsNullOrEmpty(x.Contact.Email))) { //found email = userClaim.Contact.Email; break; } var externalAuthenticationRecord = new ExternalAuthenticationRecord() { AccountId = account.Id, Email = email, ExternalIdentifier = parameters.ExternalIdentifier, ExternalDisplayIdentifier = parameters.ExternalDisplayIdentifier, OAuthToken = parameters.OAuthToken, OAuthAccessToken = parameters.OAuthAccessToken, ProviderSystemName = parameters.ProviderSystemName, }; _externalAuthenticationRecordRepository.Insert(externalAuthenticationRecord); }
/// <summary> /// Delete the external authentication record /// </summary> /// <param name="externalAuthenticationRecord">External authentication record</param> public virtual void DeleteExternalAuthenticationRecord(ExternalAuthenticationRecord externalAuthenticationRecord) { if (externalAuthenticationRecord == null) { throw new ArgumentNullException(nameof(externalAuthenticationRecord)); } _externalAuthenticationRecordRepository.Delete(externalAuthenticationRecord); }
public void DeletExternalAuthenticationRecord(ExternalAuthenticationRecord externalAuthenticationRecord) { if (externalAuthenticationRecord == null) { throw new ArgumentNullException("externalAuthenticationRecord"); } _externalAuthenticationRecordRepository.Delete(externalAuthenticationRecord); }
/// <summary> /// Delete the external authentication record /// </summary> /// <param name="externalAuthenticationRecord">External authentication record</param> public virtual async Task DeleteExternalAuthenticationRecord(ExternalAuthenticationRecord externalAuthenticationRecord) { if (externalAuthenticationRecord == null) { throw new ArgumentNullException("externalAuthenticationRecord"); } await _externalAuthenticationRecordRepository.DeleteAsync(externalAuthenticationRecord); }
/// <summary> /// Associate external account with customer /// </summary> /// <param name="customer">Customer</param> /// <param name="parameters">External authentication parameters</param> /// <returns>A task that represents the asynchronous operation</returns> public virtual async Task AssociateExternalAccountWithUserAsync(Customer customer, ExternalAuthenticationParameters parameters) { if (customer == null) throw new ArgumentNullException(nameof(customer)); var externalAuthenticationRecord = new ExternalAuthenticationRecord { CustomerId = customer.Id, Email = parameters.Email, ExternalIdentifier = parameters.ExternalIdentifier, ExternalDisplayIdentifier = parameters.ExternalDisplayIdentifier, OAuthAccessToken = parameters.AccessToken, ProviderSystemName = parameters.ProviderSystemName }; await _externalAuthenticationRecordRepository.InsertAsync(externalAuthenticationRecord, false); }
/// <summary> /// Accociate external account with customer /// </summary> /// <param name="customer">Customer</param> /// <param name="parameters">External authentication parameters</param> public virtual void AssociateExternalAccountWithUser(Customer customer, ExternalAuthenticationParameters parameters) { if (customer == null) { throw new ArgumentNullException("customer"); } var externalAuthenticationRecord = new ExternalAuthenticationRecord { CustomerId = customer.Id, Email = parameters.Email, ExternalIdentifier = parameters.ExternalIdentifier, ExternalDisplayIdentifier = parameters.ExternalDisplayIdentifier, OAuthAccessToken = parameters.AccessToken, ProviderSystemName = parameters.ProviderSystemName, }; _externalAuthenticationRecordRepository.Insert(externalAuthenticationRecord); }
public void DeletExternalAuthenticationRecord(ExternalAuthenticationRecord externalAuthenticationRecord) { throw new NotImplementedException(); }
/// <summary> /// Delete the external authentication record /// </summary> /// <param name="externalAuthenticationRecord">External authentication record</param> public void DeleteExternalAuthenticationRecord(ExternalAuthenticationRecord externalAuthenticationRecord) { _openAuthenticationService.DeleteExternalAuthenticationRecord(externalAuthenticationRecord); }