6
votes

I've been thinking of making a Windows 8 Metro (WinRT) style application that would allow the user to login/authenticate with the Steam WebAPI so I could use their stats etc that they provide. However I'm not sure how to approach this.

Almost every answer to authenticating against an OpenID provider says to use DotNetOpenAuth but when installing this with NuGet it fails saying that a dependency (CodeContracts.Unofficial 1.002) doesn't have any assemblies compatible with my project's target (.NET framework 4.5) so I'm guessing that either hasn't been updated yet for Windows 8 apps or won't be due to some WinRT restriction.

I've also looked in to using the .NET library's WebAuthenticationBroker class, but I'm not sure how to use this with an OpenID provider. The samples for it seem to only be for OAuth, and on the Steam WebAPI Page the only information provided is:

Just download an OpenID library for your language and platform of choice and use http://steamcommunity.com/openid as the provider. The returned Claimed ID will contain the user's 64-bit SteamID.

I tried simply using the given URL by passing it straight to AuthenticateAsync(WebAuthenticationOptions, Uri); but this just gives a white screen with a spinner on it.

Does anyone have any advice for me on how to either get an OpenID library working with a metro application, or how to use the WebAuthenticationBroker to auth via the OpenID protocol (preferably against steam specifically)?

1

1 Answers

1
votes

http://steamcommunity.com/dev This say you have to use OpenID but it seem the C# lib for openID do not work with .Net 4.5.

You might could make an C++ dll window store app project and use the OpenID C++ to do the job. Than add that dll to your C# window store app.