Esempio n. 1
0
        /// <summary>
        /// Check <see cref="IOAuthService"/>.
        /// </summary>
        /// <returns>Check <see cref="IOAuthService"/>.</returns>
        /// <param name="code">Check <see cref="IOAuthService"/>.</param>
        /// <param name="scopes">Check <see cref="IOAuthService"/>.</param>
        public async Task GetAccessTokenAsync(string code, string scopes)
        {
            if (string.IsNullOrEmpty(code))
            {
                throw new ArgumentNullException(code);
            }

            TokenQuery query = new TokenQuery
            {
                ClientId     = _configuration.ClientId,
                ClientSecret = _configuration.ClientSecret,
                RedirectUri  = _configuration.RedirectUri,
                GrantType    = "authorization_code",
                Code         = code,
                Scopes       = scopes
            };

            var request = new OAuthRequest <Token>
            {
                Query         = query,
                Path          = "/v6/authentication/oauth2/token",
                HTTPMethod    = HttpMethod.Post,
                Authenticated = false
            };

            var token = await _requestSender.SendRequestAsync(request).ConfigureAwait(false);

            token.SetAccessTokenExpiration();
            _credentials.Update(token);
        }
Esempio n. 2
0
        public static async Task <TokenModel> Get(TokenQuery query)
        {
            var request = new HttpRequestMessage(HttpMethod.Post, query.Url)
            {
                Content = new FormUrlEncodedContent(
                    new Dictionary <string, string>
                {
                    { "username", query.User },
                    { "password", query.Key }
                }),
            };

            var token = await httpClient.SendAsync(request);

            return((await token.Content.ReadAsStringAsync())
                   .DeserialiseJson <TokenModel>());
        }
Esempio n. 3
0
        /// <summary>
        /// 获取令牌
        /// </summary>
        /// <param name="tokenID"></param>
        /// <returns></returns>
        public TokenEntity GetToken(TokenQuery tokenQuery)
        {
            TokenEntity   tokenEntity    = null;
            StringBuilder sqlCommandText = new StringBuilder();

            sqlCommandText.Append("SELECT TOP 1 TokenID,AuthorID,Token,Type,AddDate FROM dbo.Token WITH(NOLOCK)");
            sqlCommandText.Append(" WHERE  JournalID=@JournalID AND AuthorID=@AuthorID AND AddDate>=@ExpireDate");
            if (!string.IsNullOrEmpty(tokenQuery.Token))
            {
                sqlCommandText.Append(" AND Token=@Token");
            }
            if (tokenQuery.Type > 0)
            {
                sqlCommandText.Append(" AND Type=@Type");
            }

            DbCommand cmd = db.GetSqlStringCommand(sqlCommandText.ToString());

            db.AddInParameter(cmd, "@JournalID", DbType.Int64, tokenQuery.JournalID);
            db.AddInParameter(cmd, "@AuthorID", DbType.Int64, tokenQuery.AuthorID);
            if (!string.IsNullOrEmpty(tokenQuery.Token))
            {
                db.AddInParameter(cmd, "@Token", DbType.String, tokenQuery.Token);
            }
            if (tokenQuery.Type > 0)
            {
                db.AddInParameter(cmd, "@Type", DbType.Int16, tokenQuery.Type);
            }
            db.AddInParameter(cmd, "@ExpireDate", DbType.DateTime, tokenQuery.ExpireDate);

            using (IDataReader dr = db.ExecuteReader(cmd))
            {
                if (dr.Read())
                {
                    tokenEntity          = new TokenEntity();
                    tokenEntity.TokenID  = (Int64)dr["TokenID"];
                    tokenEntity.AuthorID = (Int64)dr["AuthorID"];
                    tokenEntity.Token    = (String)dr["Token"];
                    tokenEntity.Type     = (Byte)dr["Type"];
                    tokenEntity.AddDate  = (DateTime)dr["AddDate"];
                }
                dr.Close();
            }
            return(tokenEntity);
        }
Esempio n. 4
0
        private async Task RefreshToken()
        {
            TokenQuery query = new TokenQuery
            {
                ClientId     = _configuration.ClientId,
                ClientSecret = _configuration.ClientSecret,
                RefreshToken = _credentials.RefreshToken,
                GrantType    = "refresh_token"
            };

            var request = new OAuthRequest <Token>
            {
                Authenticated = false,
                Query         = query,
                Path          = $"/v6/authentication/oauth2/token",
                HTTPMethod    = HttpMethod.Post
            };

            var newToken = await SendRequestAsync(request).ConfigureAwait(false);

            _credentials.Update(newToken);
        }
Esempio n. 5
0
        /// <summary>
        /// 单篇送排
        /// </summary>
        /// <param name="CID"></param>
        /// <returns></returns>
        public ActionResult SingleSendTypesetting(long CID)
        {
            ExecResult eResult = new ExecResult();

            FangZService.JournalXService jService = new FangZService.JournalXService();
            try
            {
                # region get token

                // 验证令牌正确性
                TokenQuery tokenQuery = new TokenQuery();
                tokenQuery.JournalID  = SiteConfig.SiteID;
                tokenQuery.AuthorID   = 0;
                tokenQuery.Type       = 3;
                tokenQuery.ExpireDate = DateTime.Now.AddDays(-7);
                IAuthorFacadeService authorService = ServiceContainer.Instance.Container.Resolve <IAuthorFacadeService>();
                TokenEntity          tokenEntity   = authorService.GetToken(tokenQuery);
                string SafetyCode = "";
                if (tokenEntity != null)
                {
                    SafetyCode = tokenEntity.Token;
                }

                # endregion
Esempio n. 6
0
 /// <summary>
 /// 获取令牌实体对象
 /// </summary>
 /// <param name="tokenQuery"></param>
 /// <returns>获取一个实体,如果数据不存在返回Null</returns>
 public TokenEntity GetToken(TokenQuery tokenQuery)
 {
     return(TokenDataAccess.Instance.GetToken(tokenQuery));
 }
Esempio n. 7
0
 public static void FullTextQuery(this TokenQuery tokenQuery, IContentIndexer indexer)
 {
     tokenQuery.Ids = indexer.Query(tokenQuery.Token).ToList();
 }
Esempio n. 8
0
 public static void FileQuery(this TokenQuery tokenQuery, List <ContentItem> contentItems, string domain)
 {
     tokenQuery.Ids = contentItems.ForDomain(domain).Where(x => x.HasFile(tokenQuery.Token)).Select(y => y.Id).ToList();
 }
Esempio n. 9
0
 public static void PathQuery(this TokenQuery tokenQuery, List <ContentItem> contentItems, string domain)
 {
     //tokenQuery.Ids = contentItems.ForDomain(domain).Where(x => x.HasPathStartingWith(tokenQuery.Token)).Select(y => y.Id).ToList();
     tokenQuery.Ids = contentItems.ForDomain(domain).Where(x => x.Paths.Contains(tokenQuery.Token)).Select(y => y.Id).ToList();
 }
Esempio n. 10
0
 /// <summary>
 /// 获取一个实体对象
 /// </summary>
 /// <param name="tokenQuery"></param>
 /// <returns>获取一个实体,如果数据不存在返回Null</returns>
 public TokenEntity GetToken(TokenQuery tokenQuery)
 {
     return(TokenBusProvider.GetToken(tokenQuery));
 }
Esempio n. 11
0
 public TokenQueryTest()
 {
     TestEnvironment.Init();
     query = new TokenQuery();
 }