示例#1
0
        public OperationStatus TrySignIn(UserSignInClient signInUser, out TokenUser tokenUser)
        {
            if (signInUser == null) { tokenUser = null; return OperationStatus.DataFormatError; }

            signInUser.ServerStatus = false;
            OperationStatus status = OperationStatus.None;
            try
            {
                MemberUser user = null;
                if (_userWork.ValidateUser(signInUser.Identifier, signInUser.Password, out user))
                {
                    tokenUser = new TokenUser(user);
                    SecurityManager.AddOrUpdateCurrentTokenUser(tokenUser);
                    status = OperationStatus.SignInSuccess;
                    signInUser.ServerStatus = true;
                    return OperationStatus.SignInSuccess;
                }
                else
                {
                    status = OperationStatus.NoUseOrWrongPassword;
                }
            }
            catch(Exception ex)
            {
                tokenUser = null;
                signInUser.ServerStatus = false;
                status = OperationStatus.GenericError;
                LoggingWork.Error(ex);
            }

            tokenUser = null;
            return status;
        }
示例#2
0
        public void AddOrUpdateCurrentTokenUser(TokenUser user)
        {

            if (CurrentUser != null)
            {
                RemoveTokenUser(user.UserName);
            }

            AddOrUpdateTokenUser(user);
            ContextUser = new CirclePrincipal(user);
        }
示例#3
0
        public void AddOrUpdateTokenUser(TokenUser user)
        {

            if (_dictToken.ContainsKey(user.UserName))
            {
                _dictToken[user.UserName] = user;
            }
            else
            {
                _dictToken.Add(user.UserName, user);
            }
        }
        private void SaveTicketToCookie(TokenUser tokenUser, bool isPersistent)
        {
            
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(2, tokenUser.UserName, 
                                                    DateTime.Now, DateTime.Now.Add(FormsAuthentication.Timeout), isPersistent, tokenUser.Token);
            string hashticket = FormsAuthentication.Encrypt(ticket);
            HttpCookie usercookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashticket);
            Response.Cookies.Add(usercookie);

          
            Session[AnnapolisHttpApplication.Session_UserName_Key] = tokenUser.UserName;
        }
        public TokenUserClient(TokenUser tokenUser):this()
        {
            if (tokenUser == null) { throw new Exception("TokenUser cannot be null!"); }

            Id = tokenUser.UserId;
            RegisterEmail = tokenUser.RegisterEmail;
            UserName = tokenUser.UserName;
            RoleName = tokenUser.RoleName;
            Token = tokenUser.Token;
            IsAdmin = tokenUser.IsAdmin;
            IsApproved = tokenUser.IsApproved;
            IsLocked = tokenUser.IsLockedOut;
        }
        private string GetFileDirectory(TokenUser user, string suffix = null)
        {

            char[] hashChars = user.UserId.ToString().Substring(0, HashDirectoryLevel).ToCharArray();
            StringBuilder sb = new StringBuilder();
            sb.Append(DefaultSetting.UploadFileRootPath);
            foreach (var c in hashChars)
            {
                sb.Append(c).Append("/");
            }
            sb.Append(user.UserName).Append("/");
            if (!string.IsNullOrWhiteSpace(suffix))
            {
                sb.Append(suffix);
            }
            return sb.ToString();
        }
示例#7
0
        public OperationStatus TryRegister(UserRegistrationClient registerUser, out TokenUser tokenUser)
        {

            if (registerUser == null) { tokenUser = null; return OperationStatus.DataFormatError; }

            tokenUser = null;
            registerUser.ServerStatus = false;
            OperationStatus status = OperationStatus.None;
            
            try
            {
                var circleUser = _userWork.Create();
                circleUser.UserName = registerUser.UserName;
                circleUser.RegisterEmail = registerUser.RegisterEmail;
                circleUser.Password = registerUser.Password;
                status = _userWork.Save(circleUser);

                if (status == OperationStatus.Success)
                {
                    MemberRole role = _roleWork.AllCacheItems.Where(x => x.Id == circleUser.RoleId).SingleOrDefault();
                    tokenUser = new TokenUser(circleUser, role);
                    SecurityManager.AddOrUpdateCurrentTokenUser(tokenUser);
                    status = OperationStatus.RegisterSuccess;
                    registerUser.ServerStatus = true;
                    return status;
                }
            }
            catch (Exception ex)
            {
                tokenUser = null;
                status = OperationStatus.GenericError;
                registerUser.ServerStatus = false;
                LoggingWork.Error(ex);
            }
            
           
            tokenUser = null;
            return status;
        }
示例#8
0
        public bool VerifyToken(string userName, string token, out TokenUser user)
        {
            try
            {
                if(string.IsNullOrWhiteSpace(userName) || string.IsNullOrWhiteSpace(token))
                { 
                    user = null; 
                    return false;
                }

                if (!_dictToken.ContainsKey(userName))
                {
                    MemberUser memberUser;
                    if (_userWorker.ValidateToken(userName, token, out memberUser) == true)
                    {
                        _dictToken.Add(userName, new TokenUser(memberUser));
                    }
                }

                if (_dictToken.ContainsKey(userName))
                {
                    if (_dictToken[userName].Token == token)
                    {
                        user = _dictToken[userName];
                        return true;
                    }
                }

            }
            catch
            {

            }

            user = null;
            return false;
        }
示例#9
0
 public void RemoveTokenUser(TokenUser user)
 {
     if (user != null)
     {
         RemoveTokenUser(user.UserName);
     }
 }
示例#10
0
 public static void RemoveTokenUser(TokenUser user)
 {
     Service.RemoveTokenUser();
 }
示例#11
0
 public static void AddOrUpdateCurrentTokenUser(TokenUser user)
 {
     Service.AddOrUpdateCurrentTokenUser(user);
 }
示例#12
0
 public CircleIdentity(TokenUser tokenUser)
 {
     _name = tokenUser.UserName;
     _isAuthenticated = tokenUser.IsAuthenticated;
 }
示例#13
0
 public CirclePrincipal(TokenUser tokenUser)
 {
     _identity = new CircleIdentity(tokenUser);
     _roleName = tokenUser.RoleName;
     _isAdmin = tokenUser.IsAdmin;
 }
示例#14
0
 public CircleIdentity(TokenUser tokenUser)
 {
     _name            = tokenUser.UserName;
     _isAuthenticated = tokenUser.IsAuthenticated;
 }
示例#15
0
 public CirclePrincipal(TokenUser tokenUser)
 {
     _identity = new CircleIdentity(tokenUser);
     _roleName = tokenUser.RoleName;
     _isAdmin  = tokenUser.IsAdmin;
 }
示例#16
0
 //[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.Synchronized)]
 public static bool VerifyToken(string userName, string token, out TokenUser user)
 {
     return Service.VerifyToken(userName, token, out user);
 }
 public UserPasswordUpdteClient(TokenUser user)
 {
     this.UserName = user.UserName;
     this.RegisterEmail = user.RegisterEmail;
 }