2017-02-21 4 views
-3

私の質問は、C#クライアント(勝つフォーム)からサーバーのapiにユーザー名とパスワードを渡す方法ですか?詳細が正しい場合、クライアントはwebapi(url)から製品リスト全体を取得し、datagridview.iに製品をバインドしました。「gridbviewに製品をバインドしました。その前に私はそれを確認する必要があります」C#クライアント(Windowsアプリケーション)からログインを確認するWeb APIにusernameパスワードを渡す方法は?

クライアントは、フォームをサーバーのAPIに送信するサーバーのwebapiが承認されたユーザーかどうかを確認する場合は、製品リストを取得しないでください。

+2

をあなたが現在持っているコードを投稿することができますか? – Rawns

+0

私はddintどのようにこの問題を解決するためのアイデアを得る。私は助けが必要です。しかし、私はグリッドビューにデータを取得している私はこれをやった。私はwinフォームからログインを確認するにはどうすればよいですか? –

答えて

2

WebApiを呼び出すためにWebRequestを使用することができます。質問をするときは、すでに試したことと失敗したことについて詳しく説明してください。

WebRequest request = WebRequest.Create("http://webapiaddress"); 
request.Credentials = new System.Net.NetworkCredential("username", "password"); 
詳細は後に

編集:

あなたはこれらの行に何か使用することができます

public async Task<TResult> GetAsync<TResult>(string uriString) where TResult : class 
    { 
     var uri = new Uri(uriString); 
     using (var client = GetHttpClient()) 
     { 
      HttpResponseMessage response = await client.GetAsync(uri); 
      if (response.StatusCode != HttpStatusCode.OK) 
      { 
       //Log.Error(response.ReasonPhrase); 
       return default(TResult); 
      } 
      var json = await response.Content.ReadAsStringAsync(); 
      return JsonConvert.DeserializeObject<TResult>(json, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); 
     } 
    } 

    private HttpClient GetHttpClient() 
    { 
     var client = new HttpClient(); 
     var username = // get your username 
     var password = // get your password 
     client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes($"{username}:{password}"))); 
     client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
     return client; 
    } 
+0

使用(VARクライアント=新しいHttpClientを())を使用して {(VAR応答=待つclient.GetAsync(パス2)) {IF(response.IsSuccessStatusCode) {VARデータ=はresponse.Content.ReadAsStringAsyncを待ちます() ; dtGrid.datasource = data; }}}。これを実行する前に私はユーザーのログインを確認する必要があります。私はuseri、passwrdをweb APIに渡したいと思っています。ユーザーが有効であれば、私はgridviewフォームを表示します。 –

0
var client = new HttpClient(); 
var stringContent = new StringContent(JsonConvert.SerializeObject(objuser), Encoding.UTF8, "application/x-www-form-urlencoded"); 

stringContent.Headers.Add("j_username", objuser.j_username); 
stringContent.Headers.Add("j_password", objuser.j_password); 
HttpResponseMessage response = client.PostAsync(@"URL"?j_username=" + objuser.j_username + "&j_password=" + HttpUtility.UrlEncode(objuser.j_password), stringContent).Result; 
string path2 = "URL/getall"; 

var response1 = await client.GetAsync(path2); 

    var data = await response1.Content.ReadAsStringAsync(); 
    if (true) 
     { 
    var data2 = JsonConvert.DeserializeObject<RootObject>(data); 
     } 
関連する問題