Пример #1
0
        /// <summary>
        /// Login an Ampla user using session
        /// </summary>
        /// <param name="session"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public AmplaUser SessionLogin(string session, out string message)
        {
            message = null;
            AmplaUser user = amplaUserStore.GetUserBySession(session);

            if (user != null)
            {
                user = Renew(user);
            }

            if (user == null)
            {
                RenewSessionRequest request = new RenewSessionRequest {
                    Session = new Session {
                        SessionID = session, User = ""
                    }
                };

                Exception            exception;
                RenewSessionResponse response = CatchExceptions(() => securityWebService.RenewSession(request), out exception);
                if (response != null)
                {
                    user = new AmplaUser(response.Session.User, response.Session.SessionID, false, "AmplaSession");
                    amplaUserStore.StoreUser(user);
                }
                if (user == null)
                {
                    message = exception.Message;
                }
            }

            return(user);
        }
Пример #2
0
        private AmplaUser Renew(AmplaUser user)
        {
            AmplaUser renewedUser = null;

            if (user != null)
            {
                RenewSessionRequest request = new RenewSessionRequest {
                    Session = new Session {
                        User = user.UserName, SessionID = user.Session
                    }
                };

                Exception            exception;
                RenewSessionResponse response = CatchExceptions(() => securityWebService.RenewSession(request), out exception);
                if (response != null)
                {
                    renewedUser = user;
                    renewedUser.UpdateActivityDate();
                }
                else
                {
                    amplaUserStore.RemoveUser(user);
                }
            }
            return(renewedUser);
        }