diff --git a/Auth0/MyCredentialsAuthProvider.cs b/Auth0/MyCredentialsAuthProvider.cs index 85e0ebf..05f8c45 100644 --- a/Auth0/MyCredentialsAuthProvider.cs +++ b/Auth0/MyCredentialsAuthProvider.cs @@ -53,6 +53,73 @@ public override bool TryAuthenticate(IServiceBase authService, string UserName, // } User _authUser = null; + + if ( + request.Meta.ContainsKey(TokenConstants.SESSION_TAG) && + request.Meta[TokenConstants.SESSION_TAG] == TokenConstants.ANONYMOUS_USER_V2_SESSION_TAG + ) + { + try + { + + string userAuthenticationConsole = + request.Meta.ContainsKey(RoutingConstants.WC) ? + request.Meta[RoutingConstants.WC] : + TokenConstants.UC; + + + string userAuthenticationEmailId = + request.Meta.ContainsKey(TokenConstants.EMAIL) ? + request.Meta[TokenConstants.EMAIL] : + TokenConstants.PUBLIC_FORM_V2_ANONYMOUS_USER_EMAIL; + + string sourceIp = + request.Meta.ContainsKey(TokenConstants.IP) ? + request.Meta[TokenConstants.IP] : + null; + + + User anonymousUser = + User.GetOrCreateAnonymousUser( + EbConnectionFactory.DataDB, + userAuthenticationEmailId, + userAuthenticationConsole, + TokenConstants.PUBLIC_FORM_V2_ANONYMOUS_USER_APP_ID, + sourceIp + ); + + + CustomUserSession session = authService.GetSession(false) as CustomUserSession; + + session.CId = cid; + anonymousUser.CId = cid; + session.Uid = anonymousUser.UserId; + session.Email = anonymousUser.Email; + session.IsAuthenticated = true; + session.User = anonymousUser; + session.WhichConsole = userAuthenticationConsole; + session.DBVendor = EbConnectionFactory.DataDB.Vendor; + anonymousUser.wc = whichContext; + anonymousUser.AuthId = string.Format(TokenConstants.SUB_FORMAT, cid, anonymousUser.UserId, whichContext); + session.UserAuthId = anonymousUser.AuthId; + session.SourceIp = sourceIp; + session.SessionTag = TokenConstants.ANONYMOUS_USER_V2_SESSION_TAG; + + var authRepo = HostContext.AppHost.GetAuthRepository(authService.Request); + var existingUser = (authRepo as MyRedisAuthRepository).GetUserAuth(session.UserAuthId); + (authRepo as MyRedisAuthRepository).UpdateUserAuth(existingUser, anonymousUser); + + return (anonymousUser != null); + + + } + catch (Exception exception) + { + throw exception; + } + } + + if (whichContext.Equals(RoutingConstants.TC)) { _authUser = User.GetDetailsTenant(EbConnectionFactory.DataDB, UserName, password, ip);