我正在使用 C# 开发 Metroapp,我一直坚持从我的应用程序调用 Web 服务,它需要用户名和密码才能访问它(我有)所以,谁能解释我如何做 Basic Auth 来制作 Web 服务称呼。任何带有示例的链接或文章都是可观的。提前致谢。
问问题
2511 次
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直接链接
祝你好运!
于 2012-07-17T18:12:42.357 回答