Reputation: 774
Are there any recommended resources for implementing a custom membership provider that uses oAuth? The goal would be to have users to log into my ASP.NET MVC application using their existing oAuth credentials. After the user is authenticated, I'd then like to leverage the built-in ASP.NET authorization features.
Thanks.
Upvotes: 38
Views: 26871
Reputation: 20596
Libraries have come the long way since you posted this question... I've started using this library for Oauth - it already has implemented Facebook, Twitter, PayPal and Google+ integration:
OAuth2 Social Logins - Facebook, Google, Twitter, PayPal - ASP.NET MVC C# open source library
Also, if backwards compatibility is not issue for you, Microsoft has started supporting popular OAuth providers... see this article:
Microsoft OAuth2 OWIN/Katana integration with Facebook and Google+
Upvotes: 1
Reputation: 12123
I'm not sure what you're looking for is OAuth.
OAuth is for delegating authorization, through the use of tokens. Depending on what you're doing you have two scenarios either:
For more info on OAuth - check out the OAuth.Net website. There are currently 3 implementations of OAuth available for .Net.
Because of the way OAuth works, I can't really imagine how you could have an "OAuth" membership provider - It's really intended for securing API's, and often the goal is to delegate authorization at a more granular level i.e. giving a consumer application access to just a users address book data, without letting them access email archives, their calendar etc. - which doesn't fit well with a membership / role based security model.
I'm guessing what you're really looking for is OpenId i.e. the way you authenticate yourself with Stackoverflow itself. I would suggest reading the Stackoverflow OpenId case study here and probably the best OpenId implementation for .Net is currently part of DotNetOpenAuth project (this was formally called DotNetOpenId, the google code site for the project is here).
Upvotes: 47
Reputation: 4144
you should take a look https://github.com/rustd/ASPNETTemplates which has the default project templates for asp.net which demonstrate logging in using OAUth and then extending the universal providers(webforms template but you can do the same for mvc) to do roles etc
Upvotes: 2
Reputation: 13837
I think you might be looking for DotNetOpenAuth. I haven't used it, so I can't tell you for sure if it includes a membership provider, but I would expect that it does. If not, it's open source, so should help you with what you're trying to do anyway.
Upvotes: 6