简体   繁体   中英

OpenID in a Win8 Metro-style app (Authenticating with Steam)

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

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM