What is the best solution to implement single sign on in a .net application? I have googled and found few solutions but I am not very convinced with those solutions.
Use
I think you're misunderstanding how single sign-on works.
Lets consider website1 and website2 who want to use single signon.
A login website is created at identityProvider. This is the only place where a logon screen appears.
When the user visits website1 and choose to login website1 sends the user to the logon screen at identityProvider. The user logs onto identityProvider which drops its own login cookie for its domain (and perhaps allows the user to save their authentication information so they're never prompted again). It then redirects the browser back to website1 including a token in the request which website1 cracks open, gets identity information from and performs it's own login bits (dropping it's own authentication cookie which lasts for however it wants).
Then the user visits website2 and selects logon. Website2 bounces the user to identityProvider, who already knows who the user is and, if they user has chosen to save their login information, silently authenticates and then redirects back to website2 with another token which website2 cracks open and then performs its own login bits.
There's a bunch of security around it, limiting tokens to particular websites, only allowing tokens to be sent to whitelisted web sites etc. etc.
So to address your concerns