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.
The official Microsoft approach is via Active Directory Federation Services (which wraps SAML with AD authentication). This has the characteristics which you're looking for -- but is possibly too heavyweight for a public web application.