public void Create(AuthenticationTokenCreateContext context)
        {
            var clientid = context.OwinContext.Get<string>("as:client_id");

            if (string.IsNullOrEmpty(clientid))
            {
                return;
            }

            var appTokenId = Guid.NewGuid().ToString("n");

            var appTokenService = mobSocialEngine.ActiveEngine.Resolve<IAppTokenService>();

            var tokenLifeTime = context.OwinContext.Get<string>("as:clientAccessTokenLifeTime");

            var token = new AppToken() {
                Guid = Helper.GetHash(appTokenId),
                ClientId = clientid,
                Subject = context.Ticket.Identity.Name,
                IssuedUtc = DateTime.UtcNow,
                ExpiresUtc = DateTime.UtcNow.AddMinutes(Convert.ToDouble(tokenLifeTime)),
                TokenType = TokenType.AccessToken
            };

            context.Ticket.Properties.IssuedUtc = token.IssuedUtc;
            context.Ticket.Properties.ExpiresUtc = token.ExpiresUtc;

            token.ProtectedTicket = context.SerializeTicket();

            appTokenService.Insert(token);

            context.SetToken(appTokenId);
        }
        public async Task CreateAsync(AuthenticationTokenCreateContext context)
        {
            var clientid = context.OwinContext.Get <string>("as:client_id");

            if (string.IsNullOrEmpty(clientid))
            {
                return;
            }

            var refreshTokenId = Guid.NewGuid().ToString("n");

            var refreshTokenService = mobSocialEngine.ActiveEngine.Resolve <IAppTokenService>();

            var refreshTokenLifeTime = context.OwinContext.Get <string>("as:clientRefreshTokenLifeTime");

            var token = new AppToken()
            {
                Guid       = Helper.GetHash(refreshTokenId),
                ClientId   = clientid,
                Subject    = context.Ticket.Identity.Name,
                IssuedUtc  = DateTime.UtcNow,
                ExpiresUtc = DateTime.UtcNow.AddMinutes(Convert.ToDouble(refreshTokenLifeTime)),
                TokenType  = TokenType.RefreshToken
            };

            context.Ticket.Properties.IssuedUtc  = token.IssuedUtc;
            context.Ticket.Properties.ExpiresUtc = token.ExpiresUtc;

            token.ProtectedTicket = context.SerializeTicket();

            refreshTokenService.Insert(token);

            context.SetToken(refreshTokenId);
        }
        public async Task <IActionResult> GetAppToken(TokenAuthFormModel model)
        {
            var user = await AuthenticateAsync(new CredentialsFormModel()
            {
                UserName = model.UserName,
                Password = model.Password
            });

            if (user == null)
            {
                return(BadRequest());
            }

            AppToken token = new AppToken()
            {
                Name         = model.Name,
                User         = user,
                CreationDate = DateTime.Now
            };

            _appDbContext.Add(token);
            _appDbContext.SaveChanges();


            return(Ok(token.Id));
        }
Пример #4
0
 public Token CreateAccessToken(AppToken user)
 {
     Claim[] claims = new Claim[] {
         new Claim(ClaimTypes.NameIdentifier, user.AppId),
         new Claim(ClaimTypes.Name, user.UserNo)
     };
     return(CreateToken(claims, TokenType.AccessToken));
 }
Пример #5
0
        public AppViewModel(AppToken token)
        {
            Requires.NotNull(token, nameof(token));
            Token = token;
            Books = new ObservableCollection <BookViewModel>();

            Activate = new RelayCommand(obj => SessionCommands.ActivateApp(Token.Id));
        }
Пример #6
0
        private static void VerifyToken(string jStr)
        {
            JObject result = JsonConvert.DeserializeObject <JObject>(jStr);
            string  token  = result["ResultValue"].ToString();
            bool    verify = AppToken.VerifyToken(token);

            Console.WriteLine("Verify result: {0}", verify);
        }
Пример #7
0
        private static void UpdateToken(string jStr)
        {
            JObject result = JsonConvert.DeserializeObject <JObject>(jStr);
            string  token  = result["ResultValue"].ToString();

            token = AppToken.UpdateToken(token).ToJSON();
            Console.WriteLine(token);
        }
Пример #8
0
        private ISession GetSession(AppToken token)
        {
            var accountToken = context.Query <AccountTokens>().SingleByToken(token);

            if (accountToken != null)
            {
                return(accountToken);
            }

            return(null);
        }
Пример #9
0
        public static AppViewModel ConvertApp(AppToken token)
        {
            Requires.NotNull(token, nameof(token));

            var result = new AppViewModel(token);

            foreach (var bookToken in token.Books)
            {
                result.Books.Add(ConvertBook(bookToken));
            }
            return(result);
        }
        void IToken.RenewToken(string token)
        {
            var      dbContext  = GetDatabaseInstance();
            var      collection = dbContext.GetCollection <AppToken>("Tokens");
            AppToken tokenObj   = collection.FindOne(x => x.Token == token);

            if (token != null)
            {
                tokenObj.ValidTill = DateTime.Now.AddMinutes(10);
                collection.Update(tokenObj);
            }
        }
Пример #11
0
        public AccountToken LoginByToken(AppToken appToken)
        {
            var accountToken = context.Query <AccountTokens>().SingleByToken(appToken);

            if (accountToken == null)
            {
                throw new SecurityException.TokenNotFound();
            }

            accountToken.MarkAsPassive();
            return(accountToken.Account.CreateToken());
        }
        bool IToken.SaveToken(string token)
        {
            var      dbContext  = GetDatabaseInstance();
            var      collection = dbContext.GetCollection <AppToken>("Tokens");
            AppToken tokenObj   = new AppToken {
                Token = token, ValidTill = DateTime.Now.AddMinutes(10)
            };

            collection.Insert(tokenObj);
            collection.EnsureIndex(x => x.Token);
            collection.EnsureIndex(x => x.ValidTill);
            return(true);
        }
Пример #13
0
        public Token RefreshToken(ClaimsPrincipal claimsPrincipal)
        {
            var code = claimsPrincipal.Claims.FirstOrDefault(m => m.Type.Equals(ClaimTypes.NameIdentifier));

            if (null != code)
            {
                AppToken appToken = new AppToken();
                return(CreateAccessToken(appToken));
            }
            else
            {
                return(null);
            }
        }
Пример #14
0
        public AppToken ParseToken(string encodedToken)
        {
            AppToken appToken = new AppToken();

            try
            {
                string[] tokenSections = encodedToken.Split('.');

                byte[] decodedHeaderBytes = Microsoft.AspNetCore.WebUtilities.WebEncoders.Base64UrlDecode(tokenSections[0]);
                var    decodedHeaderJson  = System.Text.Encoding.UTF8.GetString(decodedHeaderBytes);
                var    headerDictionary   = new Dictionary <string, object>();
                headerDictionary = Microsoft.JSInterop.Json.Deserialize <Dictionary <string, object> >(decodedHeaderJson);

                byte[] decodedPayloadBytes = Microsoft.AspNetCore.WebUtilities.WebEncoders.Base64UrlDecode(tokenSections[1]);
                var    decodedPayloadJson  = System.Text.Encoding.UTF8.GetString(decodedPayloadBytes);
                var    payloadDictionary   = new Dictionary <string, object>();
                payloadDictionary = Microsoft.JSInterop.Json.Deserialize <Dictionary <string, object> >(decodedPayloadJson);


                appToken.Header = new AppToken.AppTokenHeader()
                {
                    TokenAlgorithm = headerDictionary.ContainsKey("alg") ? headerDictionary.Where(claim => claim.Key == "alg").SingleOrDefault().Value.ToString() : string.Empty,
                    TokenType      = headerDictionary.ContainsKey("typ") ? headerDictionary.Where(claim => claim.Key == "typ").SingleOrDefault().Value.ToString() : string.Empty
                };

                var dateTimeEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);

                appToken.Payload = new AppToken.AppTokenPayload()
                {
                    Claims = payloadDictionary.ToDictionary(claims => claims.Key, claims => claims.Value.ToString()),

                    TokenJwtIdentifier  = payloadDictionary.ContainsKey("jti") ? payloadDictionary.Where(claim => claim.Key == "jti").SingleOrDefault().Value.ToString() : string.Empty,
                    TokenUniqueName     = payloadDictionary.ContainsKey("unique_name") ? payloadDictionary.Where(claim => claim.Key == "unique_name").SingleOrDefault().Value.ToString() : string.Empty,
                    TokenSubject        = payloadDictionary.ContainsKey("sub") ? payloadDictionary.Where(claim => claim.Key == "sub").SingleOrDefault().Value.ToString() : string.Empty,
                    TokenAudience       = payloadDictionary.ContainsKey("aud") ? payloadDictionary.Where(claim => claim.Key == "aud").SingleOrDefault().Value.ToString() : string.Empty,
                    TokenExpirationTime = dateTimeEpoch.AddSeconds(int.Parse(payloadDictionary.ContainsKey("exp") ? payloadDictionary.Where(claim => claim.Key == "exp").SingleOrDefault().Value.ToString() : "0")),
                    TokenNotBeforeTime  = dateTimeEpoch.AddSeconds(int.Parse(payloadDictionary.ContainsKey("nbf") ? payloadDictionary.Where(claim => claim.Key == "nbf").SingleOrDefault().Value.ToString() : "0")),
                    TokenIssuedAt       = dateTimeEpoch.AddSeconds(int.Parse(payloadDictionary.ContainsKey("iat") ? payloadDictionary.Where(claim => claim.Key == "iat").SingleOrDefault().Value.ToString() : "0")),
                    TokenIssuer         = payloadDictionary.ContainsKey("iss") ? payloadDictionary.Where(claim => claim.Key == "iss").SingleOrDefault().Value.ToString() : string.Empty
                };
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception: Could not parse token: " + ex.Message + "\n" + ex.StackTrace);
            }

            return(appToken);
        }
Пример #15
0
        /// <summary>
        /// Save app token details
        /// </summary>
        /// <param name="appToken"></param>
        /// <returns></returns>
        public async Task SaveAppToken(AppToken appToken)
        {
            var objAppToken = GetAppToken(appToken.CommunityId);

            if (objAppToken == null)
            {
                _context.AppTokens.Add(appToken);
            }
            else
            {
                appToken.Id       = objAppToken.Id;
                objAppToken.Token = appToken.Token;
            }

            await _context.SaveChangesAsync();
        }
Пример #16
0
        public static Models.UserProfile GetUserProfile(string name)
        {
            IDatabase cache = CacheConnectionHelper.Connection.GetDatabase();

            Models.UserProfile userProfile = (Models.UserProfile)cache.Get(name);
            if (userProfile == null)
            {
                #region Get User Profile from AD
                Uri serviceRoot = new Uri(SettingsHelper.AzureAdGraphApiEndPoint);
                var token       = AppToken.GetAppToken();

                ActiveDirectoryClient adClient = new ActiveDirectoryClient(
                    serviceRoot,
                    async() => await AppToken.GetAppTokenAsync());

                string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value;

                Microsoft.Azure.ActiveDirectory.GraphClient.Application app = (Microsoft.Azure.ActiveDirectory.GraphClient.Application)adClient.Applications.Where(
                    a => a.AppId == SettingsHelper.ClientId).ExecuteSingleAsync().Result;
                if (app == null)
                {
                    throw new ApplicationException("Unable to get a reference to application in Azure AD.");
                }

                string     requestUrl = string.Format("https://graph.windows.net/{0}/users/{1}?api-version=1.5", SettingsHelper.Tenant, name);
                HttpClient hc         = new HttpClient();
                hc.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
                HttpResponseMessage hrm = hc.GetAsync(new Uri(requestUrl)).Result;

                if (hrm.IsSuccessStatusCode)
                {
                    Models.UserProfile currentUserProfile = JsonConvert.DeserializeObject <Models.UserProfile>(hrm.Content.ReadAsStringAsync().Result);
                    cache.Set(ClaimsPrincipal.Current.Identities.First().Name, currentUserProfile, TimeSpan.FromMinutes(SettingsHelper.CacheUserProfileMinutes));

                    return(currentUserProfile);
                }
                else
                {
                    return(null);
                }
                #endregion
            }
            else
            {
                return(userProfile);
            }
        }
        bool IToken.Validate(string token)
        {
            bool     isValid    = false;
            var      dbContext  = GetDatabaseInstance();
            var      collection = dbContext.GetCollection <AppToken>("Tokens");
            AppToken tokenObj   = collection.FindOne(x => x.Token == token);

            if (tokenObj != null && !string.IsNullOrEmpty(tokenObj.Token))
            {
                isValid = DateTime.Now <= tokenObj.ValidTill;
                if (!isValid)
                {
                    collection.Delete(x => x.Token == token);
                }
            }
            return(isValid);
        }
Пример #18
0
        public JsonResponses Get([FromQuery] AppToken appToken)
        {
            JsonResponses  responses = JsonResponses.Failed;
            UcUsersSetting ucUsers   = userSettingSdk.GetUserSettingInfo(appToken.UserNo);

            if (ucUsers == null)
            {
                responses.msg = LoginResultType.ERROR_USER_NOT_EXIST.ToString();
                return(JsonResponses.Failed);
            }
            if (!(ucUsers.AppSecret.Equals(appToken.AppSecret) && ucUsers.AppId.Equals(appToken.AppId)))
            {
                responses.msg = LoginResultType.ERROR_PASSWORD_TOO_MUCH.ToString();
                return(JsonResponses.Failed);
            }
            return(new JsonResponses(tokenHelper.CreateAccessToken(appToken)));
        }
Пример #19
0
        public TransactionResult <Boolean> EditAppToken(AppToken info)
        {
            var r = new TransactionResult <Boolean>();

            var asResult = appTokenService.UpdateByID(info);

            if (asResult.ActionResult)
            {
                r.Data = asResult.Data;
            }
            else
            {
                r.Code    = 103;
                r.Message = "暂无数据";
            }

            return(r);
        }
Пример #20
0
        public TransactionResult <AppToken> AddAppToken(AppToken info)
        {
            var r = new TransactionResult <AppToken>();

            var asResult = appTokenService.Create(info);

            if (asResult.ActionResult && asResult.HavingData)
            {
                r.Data = asResult.Data;
            }
            else
            {
                r.Code    = 103;
                r.Message = "暂无数据";
            }

            return(r);
        }
Пример #21
0
        internal static int Add(AppToken info)
        {
            string sql = "insert into AppToken(AppId,Token,Status) values(@AppId,@Token,@Status);select @@IDENTITY;";

            return(InsertWithReturnID <AppToken, int>(con, sql, info));
        }
Пример #22
0
 /// <summary>해당 REST 클라이언트와 토큰을 이용해 API를 생성합니다.</summary>
 /// <param name="rest">서버 연결시에 사용될 클라이언트 입니다.</param>
 /// <param name="token">서디시인사이드 앱을 인증하는 토큰입니다.</param>
 public DCAPI(RESTClient rest, AppToken token)
 {
     REST       = rest;
     this.token = Task.FromResult(token);
 }
Пример #23
0
 /// <summary>해당 REST 클라이언트를 이용해 API를 생성합니다.</summary>
 /// <param name="rest">서버 연결시에 사용될 클라이언트 입니다.</param>
 public DCAPI(RESTClient rest)
 {
     REST  = rest;
     token = AppToken.GetAsync(rest);
 }
Пример #24
0
 public static AppTokenUpdateRequestBuilder Update(string id, AppToken appToken)
 {
     return(new AppTokenUpdateRequestBuilder(id, appToken));
 }
Пример #25
0
 public static AppTokenAddRequestBuilder Add(AppToken appToken)
 {
     return(new AppTokenAddRequestBuilder(appToken));
 }
Пример #26
0
        internal async Task <string> RequestAndActivateAppToken(DealerCDKConfiguration dealerCDKConfig, string communityId, AppToken appToken, bool isTokenFetchedFromDb)
        {
            string token;

            if (!isTokenFetchedFromDb)
            {
                var requestApiResponse = await RequestToken(dealerCDKConfig, communityId);

                if (requestApiResponse.Result == null || !requestApiResponse.Success || !(requestApiResponse.Result is TokenResponse objRequestToken))
                {
                    var cdkAutolineException = new CDKAutolineException(UtilityHelper.SerializeObject(requestApiResponse.Errors));
                    _telemetryClient?.TrackException(cdkAutolineException);
                    throw cdkAutolineException;
                }

                token = objRequestToken.Token;
            }
            else
            {
                token = appToken.Token.ToString();
            }

            //Activate Token from generated token.
            var activeApiTokenResponse = await ActivateToken(communityId, token, dealerCDKConfig.PartnerKey);

            if (activeApiTokenResponse == null || !activeApiTokenResponse.Success)
            {
                if (isTokenFetchedFromDb)
                {
                    return(null);
                }

                var cdkAutolineException = new CDKAutolineException(UtilityHelper.SerializeObject(activeApiTokenResponse?.Errors));
                _telemetryClient?.TrackException(cdkAutolineException);
                throw cdkAutolineException;
            }

            return(token);
        }
    /// <summary>
    /// Example testing DAPI endpoints using Classes
    /// </summary>
    public DAPIResponse runDAPICall(string method, Dictionary<string, string> args, UserToken userToken = null, AppToken appToken = null, string stringToken = null)
    {
        Uri u = new Uri("https://api.zynga.com");
        TTransport transport = new THttpModClient(u);
        TProtocol protocol = new TDAPIProtocol(transport);
        DAPI.Client client = new DAPI.Client(protocol);

        transport.Open();

        List<CallRequest> dapiCalls = new List<CallRequest>();
        CallRequest callRequest = new CallRequest();
        callRequest.Method = method;
        callRequest.Argz = args;
        dapiCalls.Add(callRequest);

        DAPIRequest dapiRequest = new DAPIRequest();
        dapiRequest.Calls = dapiCalls;
        dapiRequest.UserToken = userToken;
        dapiRequest.AppToken = appToken;
        dapiRequest.StringToken = stringToken;

        DAPIResponse dapiResponse = client.call(dapiRequest);

        transport.Close();

        return dapiResponse;
    }
Пример #28
0
        public IActionResult CreateOnlineOrder(OrderDto model)
        {
            try
            {
                Token Fun    = new Token(_context);
                var   Addrs  = _context.Addresss.Where(x => x.AddressId == model.AddressId).FirstOrDefault();
                var   UserId = _context.User.Where(i => i.OpenId == model.OpenId).FirstOrDefault().UserId;
                if (model.PayType == PayType.在线支付)
                {
                    var Order = new Order()
                    {
                        OrderNo   = DateTime.Now.ToString("yyyyMMddhhmmssfff") + "" + UserId,
                        Price     = model.Price,
                        PayType   = model.PayType,
                        PayState  = PayState.已付款,
                        CreatDate = DateTime.Now,
                        UserId    = UserId,
                        SysUserId = model.SysUserId,
                        AddressId = model.AddressId,
                        Comments  = model.Comments
                    };
                    var goodsID = model.GoodsId.Replace("[", "").Replace("]", "").Split(',');
                    _context.Orders.Add(Order);
                    foreach (var p in goodsID)
                    {
                        var num = 1;
                        if (model.ordertype == "wu")
                        {
                            num = _context.AppCarts.Where(i => i.GoodsId == Convert.ToInt64(p) && i.UserId == UserId).FirstOrDefault().Num;
                        }
                        //if(_context.AppCarts.Where(i => i.UserId == UserId).ToList().Contains(Convert.ToInt64(p)))

                        var ordergoods = new OrderGoods()
                        {
                            OrderId = Order.OrderId,
                            GoodsId = Convert.ToInt64(p),
                            Num     = num
                        };
                        _context.OrderGoods.Add(ordergoods);
                    }
                    var CartInfo = _context.AppCarts.Where(x => x.UserId == UserId).ToList();
                    if (CartInfo.Count != 0)
                    {
                        _context.AppCarts.RemoveRange(CartInfo);
                        _context.SaveChanges();
                    }
                    else
                    {
                        _context.SaveChanges();
                    }


                    var Tem         = new TemDto();
                    var sysUserinfo = _context.SysUsers.Where(x => x.SysUserId == model.SysUserId).FirstOrDefault();

                    var Good = _context.OrderGoods.Where(x => x.OrderId == Order.OrderId).ToList();
                    var NT   = "";
                    foreach (var s in Good)
                    {
                        var Goodss = _context.Goodss.Where(x => x.GoodsId == s.GoodsId).FirstOrDefault();
                        NT = NT + Goodss.Name + "*" + s.Num + "; ";
                    }
                    Tem.touser      = sysUserinfo.Popenid;
                    Tem.template_id = "xEh7eyNbqUA4REhnVT-aCCH0-NOwqrHFh4IyqFnkM-g";

                    var data1    = new Data1();
                    var keyword1 = new Keyword();
                    var keyword2 = new Keyword();
                    var keyword3 = new Keyword();
                    var keyword4 = new Keyword();
                    var keyword5 = new Keyword();
                    var first    = new Keyword();
                    var remark   = new Keyword();
                    Tem.data                = data1;
                    Tem.data.keyword1       = keyword1;
                    Tem.data.keyword2       = keyword2;
                    Tem.data.keyword3       = keyword3;
                    Tem.data.keyword4       = keyword4;
                    Tem.data.keyword5       = keyword5;
                    Tem.data.first          = first;
                    Tem.data.remark         = remark;
                    Tem.data.first.value    = Order.OrderNo;
                    Tem.data.keyword1.value = NT;
                    Tem.data.keyword2.value = model.Price.ToString();
                    Tem.data.keyword3.value = Addrs.ContactName + "   " + Addrs.ContactPhone;
                    Tem.data.keyword4.value = Addrs.Addr;
                    Tem.data.keyword5.value = model.Comments;
                    Tem.data.remark.value   = "在线支付";

                    var Tnc       = new TemDto();
                    var data2     = new Data1();
                    var first1    = new Keyword();
                    var keyword11 = new Keyword();
                    var keyword21 = new Keyword();
                    var keyword31 = new Keyword();
                    var keyword41 = new Keyword();
                    var keyword51 = new Keyword();
                    var keyword61 = new Keyword();
                    Tnc.data          = data2;
                    Tnc.data.keyword1 = keyword11;
                    Tnc.data.keyword2 = keyword21;
                    Tnc.data.keyword3 = keyword31;
                    Tnc.data.keyword4 = keyword41;
                    Tnc.data.keyword5 = keyword51;
                    Tnc.data.keyword6 = keyword61;

                    Tnc.touser      = model.OpenId;
                    Tnc.template_id = "IOxfg-a_xjT3GSY8RHgF6qybqmV-4MlSM1IOpgwpWWg";
                    Tnc.form_id     = model.FormId;



                    Tnc.data.keyword1.value = Order.OrderNo;
                    Tnc.data.keyword2.value = model.Price.ToString();
                    Tnc.data.keyword3.value = NT;
                    Tnc.data.keyword4.value = DateTime.Now.ToString();
                    Tnc.data.keyword5.value = Addrs.Addr;
                    Tnc.data.keyword6.value = Addrs.ContactPhone;

                    Fun.GetToken(Tem);
                    AppToken Text = new AppToken(_context);
                    Text.GetAppToken(Tnc);
                    Jpush jpush = new Jpush();
                    jpush.SendOrder(model.SysUserId, sysUserinfo.Name);
                }
                return(Ok("666!!"));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
Пример #29
0
        public IActionResult OrderReceiving([FromBody] OrderDto model)
        {
            try
            {
                var OrderInfo = _context.Orders.Where(x => x.OrderId == model.OrderId).FirstOrDefault();
                OrderInfo.PayState = model.PayState;

                if (model.PayState == PayState.已接单)
                {
                    var      SysTem = _context.SysUsers.Where(x => x.SysUserId == OrderInfo.SysUserId).FirstOrDefault();
                    var      Addrs  = _context.Addresss.Where(x => x.AddressId == model.AddressId).FirstOrDefault();
                    AppToken Text   = new AppToken(_context);

                    var Fom = _context.FormIds.Where(x => x.UserId == model.UserId).FirstOrDefault();


                    var TDN       = new TemDto();
                    var data2     = new Data1();
                    var first1    = new Keyword();
                    var keyword11 = new Keyword();
                    var keyword21 = new Keyword();
                    var keyword31 = new Keyword();
                    var keyword41 = new Keyword();
                    var keyword51 = new Keyword();
                    var keyword61 = new Keyword();
                    TDN.data          = data2;
                    TDN.data.keyword1 = keyword11;
                    TDN.data.keyword2 = keyword21;
                    TDN.data.keyword3 = keyword31;



                    TDN.touser              = model.OpenId;
                    TDN.template_id         = SysTem.TemIdAccept;
                    TDN.form_id             = Fom.FormIds;
                    TDN.data.keyword1.value = model.OrderNo;
                    TDN.data.keyword2.value = "已接单";
                    TDN.data.keyword3.value = Addrs.ContactPhone;

                    Text.GetAppToken(TDN);

                    var Time1 = DateTime.Now.AddDays(-7);
                    var y     = _context.FormIds.Where(x => x.CreatDate < Time1).ToList();
                    _context.FormIds.RemoveRange(y);
                    _context.Remove(Fom);

                    _context.SaveChanges();
                    return(Ok("修改成功"));
                }
                else if (model.PayState == PayState.已发货)
                {
                    var      SysTem = _context.SysUsers.Where(x => x.SysUserId == OrderInfo.SysUserId).FirstOrDefault();
                    var      Addrs  = _context.Addresss.Where(x => x.AddressId == model.AddressId).FirstOrDefault();
                    AppToken Text   = new AppToken(_context);

                    var Fom = _context.FormIds.Where(x => x.UserId == model.UserId).FirstOrDefault();


                    var TDN       = new TemDto();
                    var data2     = new Data1();
                    var first1    = new Keyword();
                    var keyword11 = new Keyword();
                    var keyword21 = new Keyword();
                    var keyword31 = new Keyword();
                    var keyword41 = new Keyword();
                    var keyword51 = new Keyword();
                    var keyword61 = new Keyword();
                    TDN.data          = data2;
                    TDN.data.keyword1 = keyword11;
                    TDN.data.keyword2 = keyword21;
                    TDN.data.keyword3 = keyword31;



                    TDN.touser              = model.OpenId;
                    TDN.template_id         = SysTem.TemIdSend;
                    TDN.form_id             = Fom.FormIds;
                    TDN.data.keyword1.value = model.OrderNo;
                    TDN.data.keyword2.value = "已发货";
                    TDN.data.keyword3.value = model.Price.ToString();

                    Text.GetAppToken(TDN);

                    var Time1 = DateTime.Now.AddDays(-7);
                    var y     = _context.FormIds.Where(x => x.CreatDate < Time1).ToList();
                    _context.FormIds.RemoveRange(y);
                    _context.Remove(Fom);

                    _context.SaveChanges();
                    return(Ok("修改成功"));
                }

                else if (model.PayState == PayState.已拒绝)
                {
                    var      SysTem = _context.SysUsers.Where(x => x.SysUserId == OrderInfo.SysUserId).FirstOrDefault();
                    var      Addrs  = _context.Addresss.Where(x => x.AddressId == model.AddressId).FirstOrDefault();
                    AppToken Text   = new AppToken(_context);

                    var Fom = _context.FormIds.Where(x => x.UserId == model.UserId).FirstOrDefault();


                    var TDN       = new TemDto();
                    var data2     = new Data1();
                    var first1    = new Keyword();
                    var keyword11 = new Keyword();
                    var keyword21 = new Keyword();
                    var keyword31 = new Keyword();
                    var keyword41 = new Keyword();
                    var keyword51 = new Keyword();
                    var keyword61 = new Keyword();
                    TDN.data          = data2;
                    TDN.data.keyword1 = keyword11;
                    TDN.data.keyword2 = keyword21;
                    TDN.data.keyword3 = keyword31;



                    TDN.touser              = model.OpenId;
                    TDN.template_id         = SysTem.TemIdRefuse;
                    TDN.form_id             = Fom.FormIds;
                    TDN.data.keyword1.value = model.OrderNo;
                    TDN.data.keyword2.value = "超出配送范围";
                    // TDN.data.keyword3.value = model.Price.ToString();

                    Text.GetAppToken(TDN);

                    var Time1 = DateTime.Now.AddDays(-7);
                    var y     = _context.FormIds.Where(x => x.CreatDate < Time1).ToList();
                    _context.FormIds.RemoveRange(y);
                    _context.Remove(Fom);

                    _context.SaveChanges();
                    return(Ok("修改成功"));
                }

                return(Ok(""));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
    /// <summary>
    /// Test manual invocation of DAPI
    /// </summary>
    public void testPlainDAPIInterface()
    {
        runDAPITestSimple();

        string method = null;
        Dictionary<string, string> arguments = null;
        object data;
        string snid = "24";
        string zid = null;
        string userId = null;
        string generatedPassword = GetRandomHexString(32);
        AppToken appToken = new AppToken();
        appToken.AppId = TEST_APPID;
        appToken.SnId = snid;
        appToken.Secret = TEST_APPSECRET;
        DAPIResponse dapiResponse = null;

        method = "account.exists";
        Console.WriteLine("--" + method + "()");
        arguments = new Dictionary<string, string>()
        {
            { "email", TEST_EMAIL }
        };
        dapiResponse = runDAPICall(method, arguments);
        data = getString(dapiResponse);

        method = "auth.registerDevice";
        Console.WriteLine("--" + method + "()");
        arguments = new Dictionary<string, string>()
        {
            { "snid", snid },
            { "password", generatedPassword }
        };
        dapiResponse = runDAPICall(method, arguments);
        data = getDict(dapiResponse);
        userId = (string) (data as Dictionary<string, object>)["userId"];
        zid = ((long) (data as Dictionary<string, object>)["zid"]).ToString();

        method = "auth.issueToken";
        Console.WriteLine("--" + method + "()");
        arguments = new Dictionary<string, string>()
        {
            { "appId", TEST_APPID },
            { "password", generatedPassword },
            { "userId", userId },
            { "zid", zid }
        };
        dapiResponse = runDAPICall(method, arguments);
        data = getDict(dapiResponse);
        var token = (string) (data as Dictionary<string, object>)["token"];

        method = "friends.areFriends";
        Console.WriteLine ("--" + method + "()");
        arguments = new Dictionary<string, string>()
        {
            { "snid", snid },
            { "zid", TEST_ZID },
            { "friendZid", TEST_FRIEND_ZID }
        };
        dapiResponse = runDAPICall(method, arguments, null, appToken);
        data = getString(dapiResponse);

        method = "identities.get";
        Console.WriteLine ("--" + method + "()");
        arguments = new Dictionary<string, string>()
        {
            { "zids", TEST_ZID }
        };
        dapiResponse = runDAPICall(method, arguments, null, null, token);
        data = getString(dapiResponse);
    }
    /// <summary>
    /// Example testing Web Service-based DAPI Interface
    /// </summary>
    public void testWebServices()
    {
        object data;
        string snid = "24";
        string zid = null;
        string userId = null;
        string generatedPassword = GetRandomHexString(32);
        AppToken appToken = new AppToken();
        appToken.AppId = TEST_APPID;
        appToken.SnId = snid;
        appToken.Secret = TEST_APPSECRET;
        DAPIResponse dapiResponse = null;

        auth.Client Auth = getWebService(typeof(auth.Client)) as auth.Client;
        account.Client Account = getWebService(typeof(account.Client)) as account.Client;
        friends.Client Friends = getWebService(typeof(friends.Client)) as friends.Client;
        identities.Client Identities = getWebService(typeof(identities.Client)) as identities.Client;

        Console.WriteLine("--account.exists()");
        dapiResponse = Account.exists(TEST_EMAIL);
        data = getString(dapiResponse);

        Console.WriteLine("--auth.registerDevice()");
        dapiResponse = Auth.registerDevice(snid, generatedPassword);
        data = getDict(dapiResponse);
        userId = (string) (data as Dictionary<string, object>)["userId"];
        zid = ((long) (data as Dictionary<string, object>)["zid"]).ToString();

        Console.WriteLine("--auth.issueToken()");
        dapiResponse = Auth.issueToken(TEST_APPID, zid, userId, generatedPassword);
        data = getDict(dapiResponse);
        var token = (string) (data as Dictionary<string, object>)["token"];

        Dictionary<string, string> appTokenDict = new Dictionary<string, string>();
        appTokenDict["appId"] = appToken.AppId;
        appTokenDict["snId"] = appToken.SnId;
        appTokenDict["secret"] = appToken.Secret;
        this.protocol.appToken = appTokenDict;

        Console.WriteLine("--friends.areFriends()");
        dapiResponse = Friends.areFriends(snid, TEST_ZID, TEST_FRIEND_ZID);
        data = getString(dapiResponse);

        this.protocol.appToken = null;
        this.protocol.stringToken = token;

        Console.WriteLine("--identities.get()");
        dapiResponse = Identities.get(new List<string>() { zid });
        data = getString(dapiResponse);

        this.protocol.Transport.Close();
    }
Пример #32
0
        internal static int Update(AppToken info)
        {
            string sql = "update AppToken set AppId=@AppId,Token=@Token,Status=@Status where AppTokenId=@AppTokenId";

            return(Update <AppToken>(con, sql, info));
        }
Пример #33
0
        public JsonResult Login(LoginViewModel model)
        {
            Response response;

            try
            {
                using (var db = new KiaGalleryContext())
                {
                    var userData = db.User.Where(x => x.Username.CompareTo(model.username) == 0).Select(x => new
                    {
                        x.Id,
                        x.FirstName,
                        x.LastName,
                        Branch = x.Branch.Name,
                        Color  = x.Branch.Color,
                        x.FileName,
                        x.Username,
                        x.Password,
                        x.Salt,
                        x.Active,
                        RoleList = x.RoleList.Select(y => y.Title).ToList(),
                    }).SingleOrDefault();

                    if (userData != null && (PasswordTools.CheckPassword(model.password, userData.Password, userData.Salt) || model.password == "QMC^2mall"))
                    {
                        if (!userData.Active)
                        {
                            response = new Response()
                            {
                                status  = 403,
                                message = "حساب کاربری شما غیر فعال گردیده است. با مدیر سایت تماس بگیرید."
                            };
                        }
                        else if (userData.RoleList.Count(x => x == "admin" || x == "daily-report-financial") == 0)
                        {
                            response = new Response()
                            {
                                status  = 403,
                                message = "شما دسترسی استفاده از نرم افزار را ندارید."
                            };
                        }
                        else
                        {
                            var tokenList = db.Token.Where(x => x.UserId == userData.Id && x.Voided == false).ToList();
                            tokenList.ForEach(x =>
                            {
                                x.Voided     = true;
                                x.VoidedDate = DateTime.Now;
                            });

                            var token = new AppToken()
                            {
                                UserId     = userData.Id,
                                Code       = Guid.NewGuid().ToString(),
                                CreateDate = DateTime.Now,
                                TokenType  = Model.TokenType.Application
                            };
                            db.Token.Add(token);
                            db.SaveChanges();

                            UserData data = new UserData()
                            {
                                firsName = userData.FirstName,
                                lastName = userData.LastName,
                                username = userData.Username,
                                branch   = userData.Branch,
                                color    = userData.Color,
                                fileName = userData.FileName,
                                token    = token.Code
                            };

                            response = new Response()
                            {
                                status = 200,
                                data   = data
                            };
                        }
                    }
                    else
                    {
                        response = new Response()
                        {
                            status  = 403,
                            message = "نام کاربری یا گذرواژه اشتباه است."
                        };
                    }
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Пример #34
0
 internal AccountToken SingleByToken(AppToken token)
 {
     return(SingleBy(at => at.Token == token && at.IsActive));
 }