コード例 #1
0
        public MobileInitialData GetInitializeData(InitialRequestDetails userAuthenticationDetailsObj)
        {
            string            status            = string.Empty;
            string            message           = string.Empty;
            MobileInitialData mobileInitialData = null;

            try
            {
                bool isValidVersion = Helper.IsValidAppVersion(userAuthenticationDetailsObj.Version, out status);
                if (isValidVersion)
                {
                    int userId = int.Parse(Utils.DecryptStringAES(userAuthenticationDetailsObj.Token));
                    mobileInitialData = Helper.GetAllInitializeDataForUser(userId);
                    if (mobileInitialData == null)
                    {
                        mobileInitialData = new MobileInitialData();
                    }
                }
            }
            catch (Exception ex)
            {
                AgentErrorLog.HandleException(ex);
                status  = "ERROR";
                message = "Unknown error.";
            }
            if (mobileInitialData == null)
            {
                mobileInitialData = new MobileInitialData();
            }
            mobileInitialData.Status  = status;
            mobileInitialData.Message = message;
            return(mobileInitialData);
        }
コード例 #2
0
ファイル: SecurityController.cs プロジェクト: Hennz/StageBitz
        public MobileInitialData AuthenticateUser(InitialRequestDetails userAuthenticationDetailsObj)
        {
            string status  = string.Empty;
            string message = string.Empty;

            MobileInitialData mobileInitialData = null;

            try
            {
                using (StageBitzDB dataContext = new StageBitzDB())
                {
                    bool isValidVersion = Helper.IsValidAppVersion(userAuthenticationDetailsObj.Version, out status);
                    if (isValidVersion)
                    {
                        string              passwordHash = Utils.HashPassword(userAuthenticationDetailsObj.Pwd);
                        PersonalBL          personalBL   = new PersonalBL(dataContext);
                        StageBitz.Data.User user         = personalBL.AuthenticateUser(userAuthenticationDetailsObj.Email, passwordHash);

                        if (user == null)
                        {
                            int pendingEmailTypeCodeId            = Utils.GetCodeByValue("EmailChangeRequestStatus", "PENDING").CodeId;
                            EmailChangeRequest emailChangeRequest = dataContext.EmailChangeRequests.Where(ec => ec.Email == userAuthenticationDetailsObj.Email && ec.StatusCode == pendingEmailTypeCodeId).FirstOrDefault();
                            if (emailChangeRequest != null)
                            {
                                //Check the password by getting the current active userID.
                                int userId = emailChangeRequest.UserId;
                                //If the PassWord is matched, we know that the user is valid where as he did not follow the link.
                                if (dataContext.Users.Where(u => u.UserId == userId && u.Password == passwordHash).FirstOrDefault() != null)
                                {
                                    // He has changed his Primary Email Address. However he has not activate it yet
                                    status  = "NOTOK";
                                    message = "Email updated please confirm.";
                                    goto FinalStatement;
                                }
                            }

                            //Invalid LogIn
                            status  = "NOTOK";
                            message = "Invalid Email address or Password.";
                        }
                        else
                        {
                            if (user.IsActive == true)
                            {
                                //Build the token
                                //Return Initializtion data
                                status = "OK";
                                byte[] content = Utils.EncryptStringAES(user.UserId.ToString());
                                mobileInitialData           = Helper.GetAllInitializeDataForUser(user.UserId);
                                mobileInitialData.UserToken = Utils.EncryptStringAES(user.UserId.ToString());
                            }
                            else
                            {
                                //User is not activated yet
                                status  = "NOTOK";
                                message = "Please activate your account.";
                            }
                        }
                    }
                    else
                    {
                        message = "Please update App.";
                    }
                }
            }
            catch (Exception ex)
            {
                AgentErrorLog.HandleException(ex);
                status  = "ERROR";
                message = "Oops! Unkown error. Sorry...";
            }
FinalStatement:
            if (mobileInitialData == null)
            {
                mobileInitialData = new MobileInitialData();
            }
            mobileInitialData.Status  = status;
            mobileInitialData.Message = message;
            return(mobileInitialData);
        }