private MembershipUser GetUserByServiceKey(OAuthServiceLogOnIdentifyer ServiceIdentifyer)
 {
     return GetUserByServiceKey(ServiceIdentifyer.ToGuid());
 }
        public void LogOn(string UserName, OAuthServiceLogOnIdentifyer ServiceLogOnIdentifyer)
        {
            var servIdent = (OAuthServiceIdentifyer)ServiceLogOnIdentifyer;

            MembershipUser user = GetUserByServiceKey(servIdent.ServiceKey);

            if (user == null) throw new Exception(string.Format("User with ServiceKey = {0} not found", ServiceLogOnIdentifyer.ToString()));

            HttpContext.Current.Response.SetUserIdentifyer(new OAuthUserIdentifyer { UserName = UserName, ServiceIdentifyer = servIdent });
        }
 public bool IsRegistered(OAuthServiceLogOnIdentifyer ServiceLogOnIdentifyer)
 {
     return GetUserByServiceKey(ServiceLogOnIdentifyer) != null;
 }
        public MembershipCreateStatus Register(string UserName, OAuthServiceLogOnIdentifyer ServiceLogOnIdentifyer)
        {
            MembershipCreateStatus createStatus;

            var guid = Guid.NewGuid();

            var userName = string.Format("<user-{0}>", guid);

            var serviceIdent = (OAuthServiceIdentifyer)ServiceLogOnIdentifyer;

            var user = Membership.CreateUser(userName, guid.ToString().ToGuid().ToString(), "*****@*****.**", null, null, true, serviceIdent.ServiceKey, out createStatus);

            OAuthAccountProfile.SetUserIdntifyer(userName, serviceIdent);

            return createStatus;
        }
        //ServiceId - OpenId or some unique identifier from OAuth service
        private string OAuthRegisterOrLoginExternalUser(string UserName, OAuthServiceLogOnIdentifyer ServiceIdentifyer)
        {
            if (!OAuthMembershipService.IsRegistered(ServiceIdentifyer))
            {
                var err = OAuthMembershipService.Register(UserName, ServiceIdentifyer);

                if (err != MembershipCreateStatus.Success) return GetErrorCodeFromString(err);
            }

            OAuthMembershipService.LogOn(UserName, ServiceIdentifyer);

            Response.Cookies.Add(new HttpCookie(".ASPXAUTH_USER", UserName));

            return null;
        }