/// <summary> /// 使用密码认证方式控制API访问 /// </summary> private static async void Test2() { ////` 从元数据中发现客户端 //var disco = await DiscoveryClient.GetAsync("http://localhost:5000"); //// 请求令牌 //var tokenClient = new TokenClient(disco.TokenEndpoint, "ro.client", "secret"); //var tokenResponse = await tokenClient.RequestResourceOwnerPasswordAsync("bob", "password", "api1");//使用用户名密码 var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000"); var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest() { Address = disco.TokenEndpoint, UserName = "******", Password = "******", Scope = "api1", ClientId = "ro.client", ClientSecret = "secret", }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); SendGet(tokenResponse.AccessToken); }
private static async Task <TokenResponse> GetToken(string authAddress) { var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync(authAddress); if (disco.IsError) { throw new Exception(disco.Error);; } var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", Scope = "api1", UserName = "******", Password = "******" }); if (tokenResponse.IsError) { throw new Exception(tokenResponse.Error); } return(tokenResponse); }
private static async Task ResourceOwnerPassword(DiscoveryResponse disco) { var client = new HttpClient(); // request token var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", Scope = "api1", UserName = "******", Password = "******", //UserName = "******", //Password = "******", }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); Console.ReadKey(); }
private static async Task <TokenResponse> RequestPasswordAccessToken(string server, string username, string password) { var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync(server); if (disco.IsError) { Console.Error.WriteLine(disco.Error); return(null); } var tokenResponse = await client.RequestPasswordTokenAsync( new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "client.ro", ClientSecret = "please-type-the-secret-here", UserName = username, Password = password, Scope = "api", }); if (tokenResponse.IsError) { Console.Error.WriteLine(tokenResponse.Error); return(null); } Console.WriteLine(tokenResponse.Json); return(tokenResponse); }
private static async Task Main() { // await RequestWithResourceOwnerPasswordWithPolicy(); // discover endpoints from metadata var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } // request token var tokenResponse = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest { Address = disco.TokenEndpoint, ClientId = "client", ClientSecret = "secret", Scope = "api1" }); tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); Console.WriteLine("\n\n"); // call api var apiClient = new HttpClient(); apiClient.SetBearerToken(tokenResponse.AccessToken); var response = await apiClient.GetAsync("http://localhost:5001/identity"); if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); } else { var content = await response.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); } }
private static async Task MainImpl() { var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } TokenResponse tokenRes = null; Console.WriteLine("输入模式,1为客户端模式,2为用户名密码模式"); if ("1" == Console.ReadLine()) { tokenRes = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest { Address = disco.TokenEndpoint, ClientId = "client", ClientSecret = "secret", Scope = "api1" }); } else { tokenRes = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", Scope = "api1", UserName = "******", Password = "******" }); } if (tokenRes.IsError) { Console.WriteLine(tokenRes.Error); return; } Console.WriteLine(tokenRes.Json); client = new HttpClient(); client.SetBearerToken(tokenRes.AccessToken); var res = await client.GetAsync("http://localhost:5001/identity"); if (!res.IsSuccessStatusCode) { Console.WriteLine(res.StatusCode); } else { var content = await res.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); } }
private static async Task Main() { // discover endpoints from metadata var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("https://*****:*****@3#2!2019", UserName = "******", Password = "******", Scope = "api3 openid profile roles Gilgamesh" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); Console.WriteLine("\n\n"); Console.Write("presione una tecla "); Console.ReadLine(); // call api var apiClient = new HttpClient(); apiClient.SetBearerToken(tokenResponse.AccessToken); var response = await apiClient.GetAsync("https://localhost:5001/account/login"); if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); Console.ReadLine(); } else { var content = await response.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); Console.Write("presione una tecla "); Console.ReadLine(); } }
private static async Task Main() { // discover endpoints from metadata var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("http://localhost:59001"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest() { Address = disco.TokenEndpoint, UserName = "******", Password = "******", ClientId = "client", ClientSecret = "secret", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine("--------------------------------------------------------------"); Console.WriteLine("|\t TOKEN"); Console.WriteLine("--------------------------------------------------------------"); Console.WriteLine(tokenResponse.Json); Console.WriteLine("\n\n"); Console.WriteLine("--------------------------------------------------------------"); Console.WriteLine("|\t API RESPONSE"); Console.WriteLine("--------------------------------------------------------------"); // call api var apiClient = new HttpClient(); apiClient.SetBearerToken(tokenResponse.AccessToken); var response = await apiClient.GetAsync("http://localhost:59002/user"); if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); } else { var content = await response.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); } }
static async Task MainFunction() { var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } //var response = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest //{ // Address = disco.TokenEndpoint, // ClientId = "client", // ClientSecret = "secret", // Scope = "api1", //}); var response = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" }); if (response.IsError) { Console.WriteLine(response.Error); return; } Console.WriteLine(response.Json); // call api client = new HttpClient(); client.SetBearerToken(response.AccessToken); var response2 = await client.GetAsync("http://localhost:5001/identity"); if (!response2.IsSuccessStatusCode) { Console.WriteLine(response2.StatusCode); } else { var content = await response2.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); } }
static async System.Threading.Tasks.Task MainAsync(string[] args) { Console.WriteLine("Hello World!"); var disco = await DiscoveryClient.GetAsync("http://localhost:5000"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } //// request token without credential //var tokenClient = new TokenClient(disco.TokenEndpoint, "client", "secret"); //var tokenResponse = await tokenClient.RequestClientCredentialsAsync("api1"); //if (tokenResponse.IsError) //{ // Console.WriteLine(tokenResponse.Error); // return; //} //Console.WriteLine(tokenResponse.Json); // request token with credential var client = new HttpClient(); var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); var client2 = new HttpClient(); client2.SetBearerToken(tokenResponse.AccessToken); var response = await client2.GetAsync("http://localhost:5001/api/identity"); var content = await response.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); }
static async Task Main() { // discover endpoints from metadata var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } // request token var tokenResponse = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest { Address = disco.TokenEndpoint, ClientId = "client", ClientSecret = "secret", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); Console.WriteLine("\n\n"); await GetApiResponse(tokenResponse.AccessToken); tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); Console.WriteLine("\n\n"); await GetApiResponse(tokenResponse.AccessToken); }
private static async Task Main(string[] args) { var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000"); if (disco.IsError) { Console.WriteLine("tvar"); Console.WriteLine(disco.Error); Console.ReadKey(); return; } var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest() { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine("pes"); Console.WriteLine(tokenResponse.Error); Console.ReadKey(); return; } Console.WriteLine(tokenResponse.Json); Console.WriteLine("\n\n"); var apiClient = new HttpClient(); apiClient.SetBearerToken(tokenResponse.AccessToken); var response = await apiClient.GetAsync("http://localhost:5001/identity"); if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); } else { var content = await response.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); } Console.ReadKey(); }
private static async Task Main() { // discover endpoints from metadata var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("https://localhost:5001"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } // request token var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "api1", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); Console.WriteLine("\n\n"); // call api var apiClient = new HttpClient(); apiClient.SetBearerToken(tokenResponse.AccessToken); var response = await apiClient.GetAsync("https://localhost:6001/api/orden"); if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); } else { var content = await response.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); } Console.ReadLine(); }
static async System.Threading.Tasks.Task Main(string[] args) { var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } //var tokenResponse = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest //{ // Address = disco.TokenEndpoint, // ClientId = "client1", // ClientSecret = "secret", // Scope = "webApi" //}); var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest() { Address = disco.TokenEndpoint, ClientId = "client2", ClientSecret = "secret", Scope = "webApi", UserName = "******", Password = "******" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); client.SetBearerToken(tokenResponse.AccessToken); var response = await client.GetAsync("http://localhost:5002/api/Identity"); if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); } else { var content = await response.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); } }
static async Task Main(string[] args) { var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000"); if (disco.IsError) { Console.WriteLine(disco.Error); Console.ReadLine(); return; } var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "client", ClientSecret = "louieclient", Scope = "api1", UserName = "******", Password = "******", }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); Console.ReadLine(); return; } Console.WriteLine(tokenResponse.Json); Console.WriteLine("\n\n"); //得到token后请求api接口 var apiClient = new HttpClient(); apiClient.SetBearerToken(tokenResponse.AccessToken);//设置header var response = await apiClient.GetAsync("https://localhost:5001/api/identity/get"); if (response.IsSuccessStatusCode) { var content = await response.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); Console.ReadLine(); } else { Console.WriteLine(response.StatusCode); } Console.ReadLine(); }
private static async Task <TokenResponse> ResourceOwnerPasswordsAsync(HttpClient client, DiscoveryResponse disco) { // request token return(await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" })); }
private static async Task UsePasswordGrant() { // discover endpoints from metadata var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync(ID4ServerUri); if (disco.IsError) { Console.WriteLine(disco.Error); return; } // request token var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); Console.WriteLine("\n\n"); // call api var apiClient = new HttpClient(); apiClient.SetBearerToken(tokenResponse.AccessToken); var uri = $"{APIServerUri}/identity"; Console.WriteLine($"Request api endpoint: {uri}"); Console.WriteLine("Response:"); var response = await apiClient.GetAsync(uri); await ConsoleOutput(response); }
private static async Task PerformRequestPw() { var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "UserNamePasswordClient", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "OrdersAPI" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); client = new HttpClient(); client.SetBearerToken(tokenResponse.AccessToken); var response = await client.GetAsync("http://localhost:5001/orders/ordersasadmin"); if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); } else { var content = await response.Content.ReadAsStringAsync(); Console.WriteLine("Ok!"); } }
private static async Task GetPasswordResourceToken(HttpClient client, DiscoveryResponse disco) { // request token TokenResponse tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); }
/// <summary> /// 根据用户名+密码获取token /// </summary> /// <returns></returns> private static async Task <string> GetAccessToken() { var client = new HttpClient(); // 获取导航文件 DiscoveryDocumentResponse disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000"); if (disco.IsError) { Console.WriteLine(disco.Error); return(""); } // 客户端凭证模式获取token var request = new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "resourceOwnerPwd.client", ClientSecret = "secret", UserName = "******", Password = "******", //Scope = "MyApiResourceScope1",//欲进入的资源域,不指定则为ids中为该客户端配置的允许访问的所有资源域;指定的话,则获取到的token只能用来进入指定的资源域 }; TokenResponse tokenResponse = await client.RequestPasswordTokenAsync(request); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return(""); } Console.WriteLine("token:"); Console.WriteLine(tokenResponse.Json); return(tokenResponse.AccessToken); }
private static async Task ROpasswordAndClientCredentialsExample(HttpClient client, DiscoveryDocumentResponse discoveryResponse) { var resourceOwnerPasswordAndClientCredentialsResponse = await client.RequestPasswordTokenAsync( new PasswordTokenRequest { Address = discoveryResponse.TokenEndpoint, ClientId = "ResourceOwnerPasswordAndClientCredentials", ClientSecret = "secret", GrantType = "password", UserName = "******", Password = "******", Scope = "profile api1" }); var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", resourceOwnerPasswordAndClientCredentialsResponse.AccessToken); var response1 = await httpClient.GetStringAsync("http://localhost:6001/identity"); }
private async Task RequestTokenPwd() { // request token HttpClient client = new HttpClient(); TokenResponse tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); client.SetBearerToken(tokenResponse.AccessToken); HttpResponseMessage response = await client.GetAsync("http://localhost:5003/api/identity"); if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); } else { string content = await response.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); } }
static async Task Main(string[] args) { string baseAddress = "https://localhost:6001"; Console.WriteLine("App Start"); DiscoveryDocumentResponse disco; // discover endpoints from metadata { var client = new HttpClient(); disco = await client.GetDiscoveryDocumentAsync("https://localhost:5001"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } } // client.AccessTokenType = AccessTokenType.Reference; // request token { var client = new HttpClient(); var tokenResponse = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest { Address = disco.TokenEndpoint, ClientId = "client", ClientSecret = "secret", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); //setRequestHeader("Authorization", "Bearer " + user.access_token); var accessToken = tokenResponse.Json["access_token"].ToString(); // WeatherForecast client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken); var weatherGet = await client.GetStringAsync(baseAddress + "/WeatherForecast"); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, baseAddress + "/identity"); request.Headers.Add("Authorization", new List <string>() { "Bearer " + accessToken }); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); var resp = await client.SendAsync(request); var identityGet = await client.GetStringAsync(baseAddress + "/identity"); Console.WriteLine($"GET: {identityGet}"); } { var client = new HttpClient(); var tokenResponse2 = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, Password = "******", UserName = "******", Scope = "api1", ClientId = "ro.client", ClientSecret = "secret" }); if (tokenResponse2.IsError) { Console.WriteLine(tokenResponse2.Error); return; } Console.WriteLine(tokenResponse2.Json); Console.WriteLine("\n\n"); } { var client = new HttpClient(); var tokenResponse3 = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest { Address = disco.TokenEndpoint, ClientId = "client11", ClientSecret = "secret11", Scope = "api1" }); if (tokenResponse3.IsError) { Console.WriteLine(tokenResponse3.Error); return; } Console.WriteLine(tokenResponse3.Json); } { var client4 = new HttpClient(); //reference token var tokenResponse4 = await client4.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, Password = "******", UserName = "******", Scope = "api1", ClientId = "ro.client2", ClientSecret = "secret" }); if (tokenResponse4.IsError) { Console.WriteLine(tokenResponse4.Error); return; } Console.WriteLine(tokenResponse4.Json); Console.WriteLine("\n\n"); var accessToken4 = tokenResponse4.Json["access_token"].ToString(); // WeatherForecast // client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken); var weatherGet4 = await client4.GetStringAsync(baseAddress + "/WeatherForecast"); HttpRequestMessage request4 = new HttpRequestMessage(HttpMethod.Get, baseAddress + "/identity"); request4.Headers.Add("Authorization", new List <string>() { "Bearer " + accessToken4 }); request4.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken4); var resp4 = await client4.SendAsync(request4); client4.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken4); var identityGet4 = await client4.GetStringAsync(baseAddress + "/identity"); Console.WriteLine($"GET: {identityGet4}"); } }
static async Task Main(string[] args) { // discover endpoints from metadata var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } // user password var tokenPasswordTokenAsync = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "intro", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" }); if (tokenPasswordTokenAsync.IsError) { Console.WriteLine(tokenPasswordTokenAsync.Error); return; } Console.WriteLine(tokenPasswordTokenAsync.Json); // request token var tokenResponse = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest { Address = disco.TokenEndpoint, ClientId = "client", ClientSecret = "secret", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); // call api client.SetBearerToken(tokenResponse.AccessToken); var response = await client.GetAsync("http://localhost:5001/weatherforecast"); if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); } else { var content = await response.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); } }
static void Main(string[] args) { // discover endpoints from metadata var client = new HttpClient(); var disco = client.GetDiscoveryDocumentAsync("http://localhost:5000").Result; if (disco.IsError) { Console.WriteLine(disco.Error); return; } // request token var tokenResponse = client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest { Address = disco.TokenEndpoint, ClientId = "client", ClientSecret = "secret", Scope = "api1" }).Result; if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); // request token tokenResponse = client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" }).Result; if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); // call api client = new HttpClient(); client.SetBearerToken(tokenResponse.AccessToken); var response = client.GetAsync("http://localhost:5001/identity").Result; if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); } else { var content = response.Content.ReadAsStringAsync().Result; Console.WriteLine(JArray.Parse(content)); } }
private static async Task MainAsync() { var client = new HttpClient(); string token = ""; var uri = new Uri("http://localhost:5000/loginapi"); HttpContent httpContent = new StringContent(JsonConvert.SerializeObject(new LoginApiDto { Username = "******", Password = "******" })); httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var resp = await client.PostAsync(uri, httpContent); if (resp.IsSuccessStatusCode) { token = await resp.Content.ReadAsStringAsync(); } Console.WriteLine(token); var apiClient2 = new HttpClient(); var apiResponse2 = await apiClient2.GetAsync("http://localhost:5000/protected"); if (!apiResponse2.IsSuccessStatusCode) { Console.WriteLine(apiResponse2.StatusCode); } else { var content = await apiResponse2.Content.ReadAsStringAsync(); Console.WriteLine(content); } apiClient2 = new HttpClient(); apiClient2.SetBearerToken(token); apiResponse2 = await apiClient2.GetAsync("http://localhost:5000/protected"); if (!apiResponse2.IsSuccessStatusCode) { Console.WriteLine(apiResponse2.StatusCode); } else { var content = await apiResponse2.Content.ReadAsStringAsync(); Console.WriteLine(content); } // discover endpoints from the metadata by calling Auth server hosted on 5000 port var disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } // request the token from the Auth server var response = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest { Address = disco.TokenEndpoint, ClientId = "client", ClientSecret = "secret", Scope = "api1" }); if (response.IsError) { Console.WriteLine(response.Error); return; } Console.WriteLine(response.Json); Console.WriteLine(response.RefreshToken); // call api var apiClient = new HttpClient(); apiClient.SetBearerToken(response.AccessToken); var apiResponse = await apiClient.GetAsync("http://localhost:5000/protected"); if (!apiResponse.IsSuccessStatusCode) { Console.WriteLine(apiResponse.StatusCode); } else { var content = await apiResponse.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); } Console.Write($"\n\nShould get unauthorized error:\n"); // call api apiClient = new HttpClient(); apiResponse = await apiClient.GetAsync("http://localhost:5000/api/identity"); if (!apiResponse.IsSuccessStatusCode) { Console.WriteLine(apiResponse.StatusCode); } else { var content = await apiResponse.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); } // ----------------------------------------------------------------- // Resource owner auth Console.WriteLine("------------------------------"); Console.WriteLine("password auth"); Console.WriteLine("------------------------------"); // request token var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); }
static async Task Main(string[] args) { var client = new HttpClient(); var discoveryResponse = await client.GetDiscoveryDocumentAsync("https://localhost:5001"); if (discoveryResponse.IsError) { Console.WriteLine(discoveryResponse.Error); return; } await ROpasswordAndClientCredentialsExample(client, discoveryResponse); var resourceOwnerPasswordResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = discoveryResponse.TokenEndpoint, ClientId = "ResourceOwnerPassword", ClientSecret = "secret", GrantType = "password", UserName = "******", Password = "******", Scope = "profile" }); var tokenResponse = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest { Address = discoveryResponse.TokenEndpoint, ClientId = "client", ClientSecret = "secret", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); var validatedToken = Validate(tokenResponse.AccessToken); var apiClient = new HttpClient(); apiClient.SetBearerToken(tokenResponse.AccessToken); var response = await apiClient.GetAsync("http://localhost:6001/identity"); if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); } else { var content = await response.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); } }
public static async Task MainAsync(string[] args) { // discover endpoints from metadata var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000"); if (disco.IsError) { Console.WriteLine("------------Token Error---------------------"); Console.WriteLine(disco.Error); return; } // request token //var tokenResponse = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest //{ // Address = disco.TokenEndpoint, // ClientId = "client", // ClientSecret = "secret", // Scope = "api1" //}); // request token var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine("------------Token Response---------------------"); Console.WriteLine(tokenResponse.Json); Console.WriteLine("\n\n"); // call api var apiClient = new HttpClient(); apiClient.SetBearerToken(tokenResponse.AccessToken); var response = await apiClient.GetAsync("http://localhost:5001/api/items"); if (!response.IsSuccessStatusCode) { Console.WriteLine("------------Items api error---------------------"); var error = await response.Content.ReadAsStringAsync(); Console.WriteLine(response.StatusCode); Console.WriteLine(error); } else { var content = await response.Content.ReadAsStringAsync(); Console.WriteLine("------------Items api response----------------------"); Console.WriteLine(JObject.Parse(content)); } var stringContent = new StringContent("", UnicodeEncoding.UTF8, "application/json"); var responseBuy = await apiClient.PostAsync("http://localhost:5001/api/items/5/buy", stringContent); if (!responseBuy.IsSuccessStatusCode) { var error = await responseBuy.Content.ReadAsStringAsync(); Console.WriteLine("------------Buy api error---------------------"); Console.WriteLine(responseBuy.StatusCode); Console.WriteLine(error); } else { var content = await responseBuy.Content.ReadAsStringAsync(); Console.WriteLine("------------Buy api response---------------------"); Console.WriteLine(JObject.Parse(content)); } }
static async Task Main() { var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("https://localhost:5001"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } //var apiTokenResponse = await client.RequestClientCredentialsTokenAsync( // new ClientCredentialsTokenRequest // { // Address = disco.TokenEndpoint, // ClientId = "client", // ClientSecret = "511536EF-F270-4058-80CA-1C89C192F69A", // Scope = "scope1" // }); //if (apiTokenResponse.IsError) //{ // Console.WriteLine(apiTokenResponse.Error); // return; //} //var apiClient = new HttpClient(); //apiClient.SetBearerToken(apiTokenResponse.AccessToken); //var response = await apiClient.GetAsync("https://localhost:6001/identity"); //if (!response.IsSuccessStatusCode) //{ // Console.WriteLine(response.StatusCode); //} //else //{ // var content = await response.Content.ReadAsStringAsync(); // Console.WriteLine(JArray.Parse(content)); //} var passwordTokenResponse = await client.RequestPasswordTokenAsync( new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "password", ClientSecret = "511536EF-F270-4058-80CA-1C89C192F69A", Scope = "scope1 openid profile", UserName = "******", Password = "******" }); if (passwordTokenResponse.IsError) { Console.WriteLine(passwordTokenResponse.IsError); return; } var passwordClient = new HttpClient(); passwordClient.SetBearerToken(passwordTokenResponse.AccessToken); var response = await passwordClient.GetAsync(disco.UserInfoEndpoint); if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); } else { var content = await response.Content.ReadAsStringAsync(); Console.WriteLine(content); } Console.ReadKey(); }
static async Task Run() { await Task.Delay(10000); // discover endpoints from metadata var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("https://localhost:5001"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } // request token resource owner flow var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = disco.TokenEndpoint, ClientId = "ro.client", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "Chat" }); // request token client credential flow //var tokenResponse = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest //{ // Address = disco.TokenEndpoint, // ClientId = "netClient", // ClientSecret = "secret", // Scope = "Chat" //}); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); Console.WriteLine("\n\n"); // call api var apiClient = new HttpClient(); apiClient.SetBearerToken(tokenResponse.AccessToken); var response = await apiClient.GetAsync("https://localhost:5002/identity"); if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); } else { var content = await response.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); } var c = new HubConnectionBuilder() .WithUrl("https://localhost:5002/chat", config => { config.AccessTokenProvider = () => Task.FromResult(tokenResponse.AccessToken); }) .Build(); c.Closed += C_Closed; c.On <string>("Echo", m => Console.WriteLine(m)); await c.StartAsync(); try { await c.SendAsync("Echo", "Hallo Echo"); var e = await c.InvokeAsync <string>("Echo2", "Hallo Echo2"); Console.WriteLine(e); } catch (Exception e) { throw; } await Task.Delay(5000); await c.StopAsync(); }