-8

我正在使用 C# 开发 Metroapp,我一直坚持从我的应用程序调用 Web 服务,它需要用户名和密码才能访问它(我有)所以,谁能解释我如何做 Basic Auth 来制作 Web 服务称呼。任何带有示例的链接或文章都是可观的。提前致谢。

4

2 回答 2

4

我假设您正在谈论基本 Http 身份验证,如果您使用 HttpClient 进行 Web 服务调用,那么您可以使用以下代码启用设置基本身份验证标头。

var request = new HttpRequestMessage(HttpMethod.Get, uri);
var token = Convert.ToBase64String(Encoding.UTF8.GetBytes(String.Format("{0}:{1}", username, password)));

request.Headers.Authorization = new AuthenticationHeaderValue("Basic", token);

然而,最简单(也是最干净)的方法:

var handler = new HttpClientHandler {
    Credentials = new NetworkCredential(username, password)
};

var httpClient = new HttpClient(handler);

var response = await httpClient.GetAsync(uriString);
于 2012-07-17T21:08:25.670 回答
2

我假设您指的是 OAuth,Metro 中的实现实际上并不像 Web Authentication WinRT API 那样难。但是正如对您的问题发表评论的开发人员所建议的那样,您应该好好阅读如果这个话题对你来说是新的。也许从这里开始,看看文档。

Pluralsight 有很多关于 WinRT 和 Web 身份验证主题的精彩视频。查看 Windows 8 --> Windows 8 Metro Connected Apps --> Accessing HTTP Services --> WebAuthBroker直接链接

至于示例应用程序,您可以在此处找到。

这是来自j MSDN的一篇文章

祝你好运!

于 2012-07-17T18:12:42.357 回答