I'm creating a new site and I want the users to be able to use several ways to sign in, basically the users should be able to create a new user on my site OR use Facebook connect OR use Twitter's account to log into the site.

I have seen several tutorials on using one of these methods, what I want to know is what do you think is the best approach to do this?

So far I think the best way would be to create a custom Authentication model (something like subtyping the existing authorization classes).

Is this the best approach?
Can you point me to a good example of someone trying something similar?

Btw, the two classes at the top represent my Entity Framework POCOs
The key here is the Authentication Table which is separate from the user table. It allows one user to have multiple methods of signing in. Hope this helps you get you on track.

Quick question; these methods are for OpenID, not Open Authentication which is the one that Twitter uses. Can we do the same procedure regardless of it's OpenID or Open Auth ?
–
FelixMMMar 19 '11 at 15:04

Yeah, it's POCO classes are fairly generic. You might have to add a field or two but I doubt it given my limited experience with twitter you only need to store their auth token, which would be stored in the field LoginId. Then, you would just call a different method on different login types. So instead of OpenIdUserLogin you'd call a Twitter one. If I'm not too busy I'll add a new post to my blog about it if you're having trouble :)
–
BuildstartedMar 19 '11 at 15:34

Thanks for the response. I implemented OpenID login in a very similar way as you answered here and now I'm going for oAuth. I'm currently following these two links: bit.ly/csBrgM and bit.ly/i8GwDh Haven't tested yet, so It could either go really well, or really bad, but again, thanks for your response :)
–
FelixMMMar 19 '11 at 16:44

If you're open to spending a few bucks per month the Windows Azure Access Control Service provides this functionality as a drop-in membership provider for ASP.NET. This is also the basis for the new Windows 8 SSO credential flow.

Note that Twitter is not yet supported, however, because Access Control doesn't support OAuth 1.0.