public static ResponseToken InvocarServicioToken(RequestToken request, string url, string verboHTTP) { ResponseToken response = new ResponseToken(); try { HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest; req.Method = verboHTTP; req.ContentType = "application/x-www-form-urlencoded"; // Metodo modificado string postData = "client_id=" + request.client_id + "&client_secret=" + request.client_secret + "&grant_type=" + request.grant_type; byte[] byteArray = Encoding.UTF8.GetBytes(postData); req.ContentLength = byteArray.Length; Stream dataStream = req.GetRequestStream(); StreamWriter sr = new StreamWriter(dataStream); sr.Write(postData); dataStream.Write(byteArray, 0, byteArray.Length); HttpWebResponse res = req.GetResponse() as HttpWebResponse; StreamReader reader = new StreamReader(res.GetResponseStream()); string resp = reader.ReadToEnd(); response = JsonConvert.DeserializeObject <ResponseToken>(resp); }catch (Exception ex) { } return(response); }
/// <summary> /// Проверить логин пароль (на непустые) /// сделать запрос /// Если ок, добавить в локальную БД /// </summary> /// <param name="login"></param> /// <param name="password"></param> /// <returns></returns> public string Authorize(string login, string password, CancellationToken cToken) { if (String.IsNullOrWhiteSpace(login) && String.IsNullOrWhiteSpace(password)) { return("Please fill both fields!"); } var response = _client.Authorize(login, password, cToken); ResponseToken responseToken = JsonConvert.DeserializeObject <ResponseToken>(response); if (responseToken.ErrorID != 0) { return(responseToken.ErrorDescription); } _client.Token = responseToken.Token; //BookModel bookModel = _client.GetBooks(_client.Token); //записать сначала локальные на сервер, потом с сервера вытащить всё(в том числе только что записанные локальные) //отправляем HistoryModel. //var lastID = _client.GetLastId("Books"); var lastID = _env.LastRecordId; var localHistoryModel = _client.GetLocalBookHystory(lastID); return(responseToken.Token); }
private async Task <IRestResponse> RestClientRequest <T>(T parameters, string methodUrl, Method methodType, bool authorization = true, CancellationToken cancellationToken = default) { if (authorization && (_token == null || _tokenExpire <= DateTime.UtcNow)) { _token = await GetToken(); } var restClient = new RestClient(_baseUrl + methodUrl); var restRequest = new RestRequest(methodType); restRequest.AddHeader("Cache-Control", "no-cache"); restRequest.AddHeader("Content-Type", "application/json"); if (authorization) { restRequest.AddHeader("Authorization", "Bearer " + _token.Result.AccessToken); } if (parameters != null) { restRequest.AddParameter("params", JsonConvert.SerializeObject(parameters, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }), (ParameterType)4); } return(await restClient.ExecuteAsync(restRequest, cancellationToken)); }
public EmailService(string url, ResponseToken token) : base(url, token, "emails") { this.createRestService = new CreateServiceBase <Email.EmailRequest, Email.EmailResponse>(url, token, "emails"); this.listRestService = new ListServiceBase <Email.EmailResponse>(url, token, "emails"); this.getRestService = new GetServiceBase <Email.EmailResponse>(url, token, "emails"); }
public ResponseToken PostclientGetToken() { string functionName = "SystemAuthen"; string baseAddress = System.Configuration.ConfigurationManager.AppSettings["ExternalUrl"] + functionName; ResponseToken result = new ResponseToken(); RequestToken requestToken = new RequestToken(); requestToken.SystemID = System.Configuration.ConfigurationManager.AppSettings["SystemID"]; try { using (var client = new HttpClient()) { var _response = client.PostAsync(baseAddress, new StringContent(JsonConvert.SerializeObject(requestToken).ToString(), Encoding.UTF8, "application/json")).Result; if (_response.IsSuccessStatusCode) { result = _response.Content.ReadAsAsync <ResponseToken>().Result; } } } catch (Exception ex) { throw ex; } return(result); }
public async Task <ResponseToken> GetRefreshToken(string refreshToken) { _client.DefaultRequestHeaders.Accept.Remove(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded")); _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded")); Dictionary <string, string> contentBody = new Dictionary <string, string> { { "grant_type", "refresh_token" }, { "refresh_token", refreshToken } }; try { HttpResponseMessage response = await _client.PostAsync("/token", new FormUrlEncodedContent(contentBody)); response.EnsureSuccessStatusCode(); string content = await response.Content.ReadAsStringAsync(); ResponseToken result = JsonConvert.DeserializeObject <ResponseToken>(content); return(result); } catch (HttpRequestException ex) { throw new Exception(ex.Message); } }
public static ResponseToken GenerateToken(RefreshTokenBase source, string key, int?expires = null, string issuer = null, string audience = null, DateTime?notBefore = null) { var symmetricSecurityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(key)); var creds = new SigningCredentials(symmetricSecurityKey, SecurityAlgorithms.HmacSha512); DateTime?expiresDate = null; if (expires != null) { expiresDate = DateTime.Now.AddSeconds((int)expires); } var token = new JwtSecurityToken(issuer, audience, claims: GenerateClaims(source, source.GetType()), expires: expiresDate, signingCredentials: creds); var response = new ResponseToken { AccessToken = new JwtSecurityTokenHandler().WriteToken(token), TokenType = "bearer", ExpiresIn = expires.ToString(), RefreshToken = source.RefreshToken }; return(response); }
internal static async Task <TaskStatus> LogIn(HttpClient httpClient, string username, string password) { HttpContent content = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("grant_type", "password"), new KeyValuePair <string, string>("username", username), new KeyValuePair <string, string>("password", password), }); HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Get, "/token"); requestMessage.Content = content; HttpResponseMessage responseMessage = null; try { responseMessage = await httpClient.SendAsync(requestMessage); } catch (Exception ex) { TaskStatus status = ApiHelper.ServerIsOpen(ex); return(status.IsError ? status : new TaskStatus(true, status.Message)); } ResponseToken token = await responseMessage.Content.ReadAsAsync <ResponseToken>(); if (responseMessage.IsSuccessStatusCode) { ApiHelper.AddAuthorization(token.token_type, token.access_token); return(new TaskStatus(false)); } else { return(new TaskStatus(true, token.error_description)); } }
public ResponseToken Authenticate(User user) { ResponseToken result = new ResponseToken(); try { if (user == null) { result.status = "No information provided"; } user.password = base64Decode(user.password); bool isCredentialValid = (user.password == "ProjectLibrary2019"); if (isCredentialValid) { result.token = TokenGenerator.GenerateJwt(user); result.status = "OK"; result.message = "Token Generado"; } else { result.status = "error"; result.message = "Invalid credentials"; } } catch (Exception e) { result.status = "error"; result.message = e.Message; } return(result); }
private async Task <ResponseToken> GetToken(CancellationToken cancellationToken = default) { while (true) { var restResponse = await RestClientRequest(new IysCredentials { Username = _username, Password = _password }, "/oauth2/token", Method.POST, false, cancellationToken); if (restResponse.StatusCode == HttpStatusCode.OK) { _token = new ResponseToken { Result = JsonConvert.DeserializeObject <ResponseTokenItem>(restResponse.Content) }; _tokenExpire = DateTime.UtcNow.AddSeconds(Convert.ToInt32(_token.Result.ExpiresIn) - 60); return(_token); } Console.WriteLine("ERROR: GetToken : " + restResponse.StatusCode); await Task.Delay(1000, cancellationToken); } }
public AllServiceBase(string url, ResponseToken token, string endpoint) : base(url, token, endpoint) { this.ListService = new ListServiceBase <TResponse>(url, token, endpoint); this.DeleteService = new DeleteServiceBase <TResponse>(url, token, endpoint); this.GetService = new GetServiceBase <TResponse>(url, token, endpoint); this.CreateService = new CreateServiceBase <TRequest, TResponse>(url, token, endpoint); this.UpdateService = new UpdateServiceBase <TRequest, TResponse>(url, token, endpoint); }
public DepositService(string url, ResponseToken token) { this.contactService = new ContactService(url, token); this.categoryService = new CategoryService(url, token); this.createRestService = new CreateServiceBase <Deposit.DepositRequest, Deposit.DepositResponse>(url, token, "deposits"); this.listRestService = new ListServiceBase <Deposit.DepositResponse>(url, token, "deposits"); this.getRestService = new GetServiceBase <Deposit.DepositResponse>(url, token, "deposits"); }
public ContactService(string url, ResponseToken token) : base(url, token, "contacts") { this.createRestService = new CreateServiceBase <Contact.ContactRequest, Contact.ContactResponse>(url, token, "contacts"); this.listRestService = new ListServiceBase <Contact.ContactResponse>(url, token, "contacts"); this.getRestService = new GetServiceBase <Contact.ContactResponse>(url, token, "contacts"); this.deleteRestService = new DeleteServiceBase <Contact.ContactResponse>(url, token, "contacts"); this.updateRestService = new UpdateServiceBase <Contact.ContactRequest, Contact.ContactResponse>(url, token, "contacts"); }
public GroupService(string url, ResponseToken token) : base(url, token, "groups") { this.createRestService = new CreateServiceBase <Group, Group>(url, token, "groups"); this.listRestService = new ListServiceBase <Group>(url, token, "groups"); this.getRestService = new GetServiceBase <Group>(url, token, "groups"); this.deleteRestService = new DeleteServiceBase <Group>(url, token, "groups"); this.updateRestService = new UpdateServiceBase <Group, Group>(url, token, "groups"); }
public EventService(string url, ResponseToken token) { this.createRestService = new CreateServiceBase <Event, Event>(url, token, "events"); this.listRestService = new ListServiceBase <Event>(url, token, "events"); this.getRestService = new GetServiceBase <Event>(url, token, "events"); this.deleteRestService = new DeleteServiceBase <Event>(url, token, "events"); this.updateRestService = new UpdateServiceBase <Event, Event>(url, token, "events"); }
public ExpenseService(string url, ResponseToken token) { this.contactService = new ContactService(url, token); this.categoryService = new CategoryService(url, token); this.listRestService = new ListServiceBase <Expense.ExpenseResponse>(url, token, "expenses"); this.getRestService = new GetServiceBase <Expense.ExpenseResponse>(url, token, "expenses"); this.createRestService = new CreateServiceBase <Expense.ExpenseRequest, Expense.ExpenseResponse>(url, token, "expenses"); }
public InvoiceService(string url, ResponseToken token) { this.contactService = new ContactService(url, token); this.categoryService = new CategoryService(url, token); this.createRestService = new CreateServiceBase <Invoice.InvoiceRequest, Invoice.InvoiceResponse>(url, token, "invoices"); this.listRestService = new ListServiceBase <Invoice.InvoiceResponse>(url, token, "invoices"); this.getRestService = new GetServiceBase <Invoice.InvoiceResponse>(url, token, "invoices"); }
public JsonResult Login([FromQuery] string username, string password, string rolename) { // 用户名密码是否正确 if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password) || string.IsNullOrWhiteSpace(rolename)) { return(new JsonResult(new { Code = 0, Message = "传入参数不完整", })); } if (!((username == "aa" || username == "bb" || username == "cc") && password == "123456")) { return(new JsonResult(new { Code = 0, Message = "账号或密码错误", })); } // 你自己定义的角色/用户信息服务 RoleService roleService = new RoleService(); // 检验用户是否属于此角色 var role = roleService.IsUserToRole(username, rolename); // CZGL.Auth 中一个用于加密解密的类 EncryptionHash hash = new EncryptionHash(); // 设置用户标识 var userClaims = hash.BuildClaims(username, rolename); //// 自定义构建配置用户标识 /// 自定义的话,至少包含如下标识 //var userClaims = new Claim[] //{ //new Claim(ClaimTypes.Name, userName), // new Claim(ClaimTypes.Role, roleName), // new Claim(JwtRegisteredClaimNames.Aud, Audience), // new Claim(ClaimTypes.Expiration, TimeSpan.TotalSeconds.ToString()), // new Claim(JwtRegisteredClaimNames.Iat, new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds().ToString()) //}; /* * iss (issuer):签发人 * exp (expiration time):过期时间 * sub (subject):主题 * aud (audience):受众 * nbf (Not Before):生效时间 * iat (Issued At):签发时间 * jti (JWT ID):编号 */ // 方法一,直接颁发 Token ResponseToken token = hash.BuildToken(userClaims); //方法二,拆分多步,颁发 token,方便调试 //var identity = hash.GetIdentity(userClaims); //var jwt = hash.BuildJwtToken(userClaims); //var token = hash.BuildJwtResponseToken(jwt); return(new JsonResult(token)); }
public static string CaptchaVerify() { //It should only call once if (response.score == 0) { var responseString = RecaptchaVerify(Token); response = JsonConvert.DeserializeObject <ResponseToken>(responseString.Result); } return(JsonConvert.SerializeObject(response)); }
public IActionResult Index(RequestToken request) { ResponseToken token = new ResponseToken(); if (string.IsNullOrEmpty(request.Device_Code)) { return(BadRequest(ResponseTokenError.InvalidRequest("device_code"))); } return(Ok(token)); }
public TaskService(string url, ResponseToken token) : base(url, token, "tasks") { this.contactService = new ContactService(url, token); this.categoryService = new CategoryService(url, token); this.createRestService = new CreateServiceBase <Task.TaskRequest, Task.TaskResponse>(url, token, "tasks"); this.listRestService = new ListServiceBase <Task.TaskResponse>(url, token, "tasks"); this.getRestService = new GetServiceBase <Task.TaskResponse>(url, token, "tasks"); this.deleteRestService = new DeleteServiceBase <Task.TaskResponse>(url, token, "tasks"); this.updateRestService = new UpdateServiceBase <Task.TaskRequest, Task.TaskResponse>(url, token, "tasks"); }
public async Task Login_callback(String _code) { String _dropboxURL = "https://api.dropbox.com/1/oauth2/token?code=" + Uri.EscapeDataString(_code) + "&grant_type=authorization_code"; HttpResponseMessage _response = null; HttpClient httpClient = new HttpClient(); HttpContent content = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("client_id", ClientId), new KeyValuePair <string, string>("client_secret", Secret) }); try { _response = await httpClient.PostAsync(new Uri(_dropboxURL), content); } catch (HttpRequestException e) { Debug.WriteLine(e.Message); } if ((_response != null) && (_response.StatusCode == HttpStatusCode.OK)) { ResponseToken _t = await Serialization.DeserializeHttpToJson <ResponseToken>(_response.Content) as ResponseToken; Token = _t.access_token; LocalSettings.SaveStorageValue <String>(LOCAL_OAUTH_TOKEN, Token); //Get UserName String _respJson = await httpClient.GetStringAsync(new Uri("https://api.dropbox.com/1/account/info?access_token=" + Token)); if (_response != null) { var value = JsonValue.Parse(_respJson).GetObject(); UserName = value.GetNamedString("display_name"); LocalSettings.SaveStorageValue <String>(LOCAL_USER_NAME, UserName); //end of auth process LoggedIn = WebAccountState.Connected; // force synchronization if (_handle != null) { _handle.SetSynchroStatus(SynchroManager.Status.InProgress); await Synchronize(_handle); } } } return; }
/// <summary> /// 生成 Token 信息 /// </summary> /// <param name="jwt">JWT 令牌</param> /// <param name="timeSpan">Token过期时间</param> /// <returns>CZGL.Auth.Models。ResponseToken</returns> public ResponseToken BuildJwtResponseToken(JwtSecurityToken jwt) { var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt); var response = new ResponseToken { Status = true, Access_Token = encodedJwt, Expires_In = AuthConfig.model.TimeSpan.TotalSeconds, Token_Type = "Bearer" }; return(response); }
static void StoreToken(string response) { try { if (response.IsClean()) { ResponseToken token = JsonConvert.DeserializeObject <ResponseToken>(response); Settings.MalApiToken = token.access_token; Settings.MalApiRefreshToken = token.refresh_token; Settings.MalApiTokenUnixTime = CloudStreamCore.UnixTime + token.expires_in; } } catch (Exception) { } }
public bool Connect(string ClientID, string ClientSecret, string TenantID) { try { // Constants var resource = $"https://login.microsoftonline.com/{TenantID}/oauth2/v2.0/token"; var scope = "https://graph.microsoft.com/.default"; // Request token var restclient = new RestClient(resource); var request = new RestRequest(Method.POST); request.AddParameter("client_id", ClientID); request.AddParameter("client_secret", ClientSecret); request.AddParameter("grant_type", "client_credentials"); request.AddParameter("scope", scope); // Execute the request var Response = restclient.Execute(request); if (Response.ErrorException != null) { const string message = "Error retrieving response. Check inner details for more info."; var ApplicationException = new ApplicationException(message, Response.ErrorException); throw ApplicationException; } var responseJson = Response.Content; var responseToken = JsonConvert.DeserializeObject <ResponseToken>(responseJson); if (responseToken.access_token != null) { // Store token information token = JsonConvert.DeserializeObject <ResponseToken>(responseJson); return(true); } else { const string message = "Unable to connect to Graph API Microsoft. Please check your credential"; var ApplicationException = new ApplicationException(message); throw ApplicationException; } } catch (Exception e) { const string message = "Error connect to Graph API Microsoft. Check inner details for more info."; var ApplicationException = new ApplicationException(message, e); throw ApplicationException; } }
public ActionResult Robot(string hiddenToken) { string token = hiddenToken; string tokencContent = PostJsonContent(token); //取得隱藏欄位token ResponseToken responseToken = JsonConvert.DeserializeObject <ResponseToken>(tokencContent); Session["verification"] = responseToken.success; if (responseToken.success != true) { return(Content("機器人來襲")); } return(Content("success")); }
public ResponseToken GenerateToken(RequestToken data) { ResponseToken res = new ResponseToken(); try { res = JwtManager.GenerateToken(); } catch (Exception ex) { throw ex; } return(res); }
public static ResponseToken AutorizeToken(HttpRequestMessage response) { ResponseToken rsp = new ResponseToken(); var message = string.Empty; var expire = RefreshToken(); if (expire < DateTime.Now) { //newtoken = Token.refresh(request, id); message = "Token Expired"; rsp.MessageResponse = message; //msg = rsp.MessageResponse; } return(rsp); }
// läser ett tecken i taget och ifall tecknet är en av våra // Terminal-symboler lägger vi till dess token till listan. // (https://en.wikipedia.org/wiki/Lexical_analysis#Token) private Token ScanToken(char c, string sequence) { Token t; switch (c) { case '[': t = new DialogBeginToken(); reader.Read(); break; case ']': t = new DialogEndToken(); reader.Read(); break; case '#': t = new ResponseToken(); reader.Read(); break; case '{': t = new ResponseTargetBeginToken(); reader.Read(); break; case '}': t = new ResponseTargetEndToken(); reader.Read(); break; case '<': t = new ScriptableBeginToken(); reader.Read(); break; case '>': t = new ScriptableEndToken(); reader.Read(); break; default: t = IsValidWordToken(sequence, c); break; } return(t); }
private async void btnRefreshToken_Click(object sender, RoutedEventArgs e) { try { var client = new HttpClientUtility(); ResponseToken token = await client.GetRefreshToken(this.lblRefreshToken.Content.ToString()); this.txtToken.Text = token.AccessToken; this.lblRefreshToken.Content = token.RefreshToken; } catch (Exception ex) { this.txtToken.Text = ex.Message; this.lblRefreshToken.Content = string.Empty; } }