Facebook/Twitter login in my application - asp.net

I am developing my site and in my site I want users to login through their
social network credentials like Facebook and Twitter.
How should I track these users whenever they do any event on my site? Suppose a user logs in with Facebook username & password, and now he is redirected to the next page. On that page, we are doing some activity like 'add something'. How to track this?
Is there any procedure for working with this?

The common practice is to associate user's Facebook or Twitter account with your internal account and then track all user activity via your internal account id. If the newly logged in user doesn't have an internal account, then silently create it from Facebook/Twitter data and auto-associate.
Btw, integrating your ASP.Net app with Facebook and Twitter will be easier using Facebook C# SDK for Facebook and Twitterizer for Twitter.

Have a look a the OAuth C# Library
http://www.matlus.com/oauth-c-library/

Related

How to set up a centralised authentication site like google?

how to design a website only for storing user data and use the same for login into any alias website like google. For example accounts.website.com is used for new user sign-up or existing user authentication. Then I have two more websites, first one is used as e-commerce store and another is used for service/support. When the user tries to signup or login they will be redirected to accounts.website.com and after finishing authentication they will be redirected to previous website. Same process is followed from the second website. Any idea how? Any article or guide?
This is possible with 3 separate WordPress sites:-
accounts
e-commerce
support
Install the WP OAuth server on the accounts site.
And Single Sign Client on the e-commerce and support sites.

Google Identity Toolkit without "Email First" option

I am planning to use Google Identity Toolkit and will integrate only with Google Provider (no other providers and no chance in the future too).
Whatever example I have seen, flow is showing "Email First" option.After providing email based on domain, it takes to identity provider site.
Scenario is, if user is not logged in, user is required to enter his email address twice, first on "Email First" page, then on Google Account Page.
As I have, only Google as provider, question is how can I directly redirect user to Google Account, once he clicks Sign-In button, instead of showing him "Email First" page?
Edited
Now I have little change in the flow, the web site I am working with has been integrated with different companies active directory, so once user enter his email address, based on email domain user would be redirected to required company portal for user verification.
Now web site is planning to allow Google accounts and when user enter email address with Google domain, use should be redirected to Google Account Page. Web site owner, does not want to see "Email First" or "Provider First" screen as this is bad user experiences.
If you specify displayMode: 'providerFirst' in the widget options, it should work as desired.
https://developers.google.com/identity/toolkit/web/setup-frontend#email_first_vs_provider_first_modes
Why not use Google Sign-In for Websites instead? Since Google is your only identity provider, that seems like your best option. You'd also get first and last names on login which Identity Toolkit doesn't provide.
https://developers.google.com/identity/sign-in/web/

Is there any standard for the following type of authentication

We are partner to another company. We developed an asp.net site with membership as the provider. Our partner company requests the following. The users would log in to their site through their UI. Once the user is logged in, there is a link to our site. They want to bypass our login screen and let the users get into our site after they authenticate the user. Is there any standard for this? I checked openid, but it didn't seem like a quite fit. As far as I understood, in openid, there needs to be a link in our login page saying "Login using Company X". Then when the user clicks that the user is taken to Company X login page. Once the user is authenticated is redirected to the link we provided and the user is authenticated. Our partner company doesn't want the user to come to our login page. I still want to use everything that membership provides such as roles.
You might want to look at Claim Based Authentication.
Basically, you can redirect a user to your Partner Site. The user logins at their site, and then your Partner issues security token.
You can download the book - A Guide to Claims-Based Identity and Access Control, Second Edition - Book Download
Source: about slide is from PluralSight - Identity and Access Control in ASP.NET 4.5

Facebook login with ASP.NET

I am implementing Facebook login on my website. I am creating an asp.net user as well with the Facebook users details. This way I can control login in people to my site using .NET membership regardless of whether they are a Facebook user or not.
The problem I am facing now is security. When a user logs in with Facebook I am calling a webservice with their facebook details, if the user exists on the system (by their facebook userid) then I log them in. However as it stands anyone could call the webservice with someone elses facebook id and it would log them in (if that user existed on the system). Is there something that I can use to link the facebook user with my asp.net user that is only accessible to that user, such as an access token. It also needs to be something which does not change? Does facebook send back such a thing in the response object?
Any help or suggestions are much appreciated.
Thanks
Yes, we can get that profile data from Facebook. Using that requestAccessToken Url you can get that access token.
requestAccessTokenurl="https://graph.facebook.com/oauth/access_token?client_id={0} redirect_uri={1};client_secret={2};code={3}"
Also we can get the Profile Data using this access token
requestProfileUrl="https://graph.facebook.com/me"
please see this link- http://easyoauth.codeplex.com/
you can download the source code also :)
We have implemented for Facebook, Twitter, LinkedIn, Google using this framework. It is very straight forward. I can help you how to do this.
Thanks

Can the Facebook C# SDK support these typical site login/registration scenarios?

I want to support the following scenarios on my ASP.NET MVC website:
First time visitor wants to
register, via facebook connect. I'd
like the user to have an entry in my
user membership table - so I have
them enter a username/password
(email gets populated via facebook
connect).
Registered user returns to my
site, logged into facebook already.
I'd like my site to see they're
logged into facebook already and
auto log them into my membership
system.
Registered user returns to my
site, but is not logged into
facebook. I'd like to give them two
options: to log into my site
directly or use facebook connect.
Extra:
After a user has connected their
facebook account to my site, I'd
like to use their facebook profile
photo throughout my site where the
user has participated.
I'd also like to post a bit of text, maybe even a photo, to the user's wall (when they perform an action of course).
Couple questions:
What should I store to tie the user's id in my membership system to their facebook account? I'm assuming it would be their facebook user id.
Can this facebook C# SDK handle these scenarios?
Yes you would store their Facebook Id and Yes the API can support this.

Resources