使用C#在metro应用中进行基本身份验证

时间:2012-07-17 13:01:58

标签: c# windows-8 windows-runtime

我正在使用C#开发metroapp,我一直在从我的应用程序调用web服务,这需要用户名和密码来访问它(我有)所以,任何人都可以解释我如何做Basic Auth来制作一个网络服务电话。任何带有示例的链接或文章都是值得注意的。 提前谢谢。

2 个答案:

答案 0 :(得分:4)

我假设您正在讨论基本Http身份验证,如果您使用HttpClient进行Web服务调用,则可以使用以下代码启用set a Basic身份验证标头。

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

答案 1 :(得分:2)

我假设您指的是OAuth,并且Metro中的实现实际上并不像Web身份验证WinRT API那么难.-但是正如评论您提出的问题的开发人员所建议的那样,您应该拥有如果这个主题对你不熟悉,请仔细阅读。 Maybe start here, look at the documentation.

Pluralsight在WinRT上有许多很棒的视频,以及Web身份验证主题。 在Windows 8下查看 - > Windows 8 Metro Connected Apps - >访问HTTP服务 - > WebAuthBroker direct link here

As for an example app, you can find one here.

And here is an article fromj MSDN

祝你好运!