public object Authenticate(IObjectSpace objectSpace) { IAuthenticationOAuthUser user = null; AuthenticateResult authenticateResult = Authenticate().Result; if (authenticateResult != null) { Claim emailClaim = authenticateResult.Identity.FindFirst(ClaimTypes.Email); if (emailClaim != null) { user = (IAuthenticationOAuthUser)objectSpace.FindObject(userType, CriteriaOperator.Parse(string.Format("OAuthAuthenticationEmails[Email = '{0}']", emailClaim.Value))); if (user == null && CreateUserAutomatically) { user = (IAuthenticationOAuthUser)objectSpace.CreateObject(userType); user.UserName = emailClaim.Value; EmailEntity email = objectSpace.CreateObject <EmailEntity>(); email.Email = emailClaim.Value; user.OAuthAuthenticationEmails.Add(email); ((CustomSecurityStrategyComplex)security).InitializeNewUser(objectSpace, user); objectSpace.CommitChanges(); } } } else { WebApplication.Redirect(WebApplication.LogonPage); } if (user == null) { throw new Exception("Login failed"); } return(user); }
public override object Authenticate(IObjectSpace objectSpace) { IAuthenticationOAuthUser user = base.Authenticate(objectSpace) as IAuthenticationOAuthUser; if (user != null && !user.EnableStandardAuthentication) { throw new InvalidOperationException("Password authentication is not allowed for this user."); } return(user); }
public override object Authenticate(IObjectSpace objectSpace) { IAuthenticationOAuthUser user = null; if (AuthenticationOwin.Module.Web.Controllers.LogonAuthController.IsOAuthRequest) { AuthenticateResult authenticateResult = Authenticate().Result; if (authenticateResult != null) { Claim emailClaim = authenticateResult.Identity.FindFirst(ClaimTypes.Email); if (emailClaim != null) { user = (IAuthenticationOAuthUser)objectSpace.FindObject(UserType, CriteriaOperator.Parse(string.Format("OAuthAuthenticationEmails[Email = '{0}']", emailClaim.Value))); if (user == null && CreateUserAutomatically) { user = (IAuthenticationOAuthUser)objectSpace.CreateObject(UserType); user.UserName = emailClaim.Value; EmailEntity email = objectSpace.CreateObject <EmailEntity>(); email.Email = emailClaim.Value; user.OAuthAuthenticationEmails.Add(email); ((CustomSecurityStrategyComplex)Security).InitializeNewUser(objectSpace, user); objectSpace.CommitChanges(); } } } else { //TODO WebApplication.Redirect(WebApplication.LogonPage); } if (user == null) { throw new Exception("Login failed"); } return(user); } else { user = base.Authenticate(objectSpace) as IAuthenticationOAuthUser; if (user != null && !user.EnableStandardAuthentication) { throw new InvalidOperationException("Password authentication is not allowed for this user."); } return(user); } }