예제 #1
0
        public AccountSignResult CreateNew(ClientDevice entity)
        {
            var result = new AccountSignResult();

            result.SignStatus = SignStatus.None;

            if (null == entity ||
                string.IsNullOrEmpty(entity.DeviceKey) ||
                string.IsNullOrEmpty(entity.Product) ||
                string.IsNullOrEmpty(entity.Brand))
            {
                this.ReturnPreconditionFailedMessage();
            }

            var account = AccountAuthentication.CreateNew(entity);

            if (null != account)
            {
                result.SignStatus = SignStatus.Success;
                result.Account    = new AccountEntity(account, null);

                WriteTokenToBrowser(result);
            }
            else
            {
                result.SignStatus = SignStatus.Error;
            }

            return(result);
        }
예제 #2
0
        public ActionResult LoadAccountInfo()
        {
            AccountEntity accountEntity = null;

            if (null != this.Request.UserAgent && null != this.Request.UrlReferrer)
            {
                var accessToken = CookieHelper.GetValue(AccountAuthentication.TokenKey);
                if (null == accessToken)
                {
                    var device = new ClientDevice();
                    accountEntity = new AccountEntity(AccountAuthentication.CreateNew(device), null);;

                    CookieHelper.SetCookie(AccountAuthentication.TokenKey, accountEntity.Token.AccessToken, DateTime.MaxValue);
                }
                else
                {
                    accountEntity = new AccountEntity(MvcContext.Current.ClientAccount, MvcContext.Current.UserPassport);
                }
            }

            return(View("LoadAccountJS", accountEntity));
        }