【问题标题】:how to pass username password from windows application to web API?如何将用户名密码从 Windows 应用程序传递到 Web API?
【发布时间】:2017-07-11 05:09:21
【问题描述】:

我想从 windows 应用程序调用 web api。

【问题讨论】:

  • 你能发布你目前拥有的代码吗?
  • 我不知道如何解决这个问题。我需要帮助。但我正在将数据获取到网格视图我这样做了。但是如何从 win 表单中查看登录信息?

标签: c# asp.net-web-api


【解决方案1】:

您可以使用 WebRequest 来调用您的 WebApi。这些线上的东西。很难理解你到底想要什么。提问时,试着详细说明你已经尝试过什么,什么失败了。这不是编码服务。

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;
    }

【讨论】:

  • 使用 (var client = new HttpClient()) { using (var response = await client.GetAsync(path2)) { if (response.IsSuccessStatusCode) { var data = await response.Content.ReadAsStringAsync( ); dtGrid.datasource=数据; }}}。在执行此操作之前,我需要检查用户登录。表示我想将 useri、passwrd 传递给 web api,如果用户有效,那么我将显示我的 gridview 表单。
【解决方案2】:
 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);
         }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多