protected void IdentitySelectorIconClick(object sender, EventArgs e) { string secXmlToken = Request.Params["SecXmlToken"]; if (!string.IsNullOrEmpty(secXmlToken)) { Token token = new Token(secXmlToken); string ppid = token.Claims[ClaimTypes.PPID]; string firstname = token.Claims[ClaimTypes.GivenName]; string lastname = token.Claims[ClaimTypes.Surname]; string email = token.Claims[ClaimTypes.Email]; string gender = token.Claims[ClaimTypes.Gender]; CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString()); var user = csb.hisp_DataObject_GetUserIDByOpenID(ppid).ElementAtOrDefault(0); if (user != null) // User exists { MembershipUser membershipUser = Membership.GetUser(user.USR_ID); if (membershipUser != null) { PerformLogin(membershipUser.UserName); } } else // User doesn't exist { if (!string.IsNullOrEmpty(firstname) && !string.IsNullOrEmpty(email)) { if (DataObjectUser.CreateUser(AuthenticationType.InformationCard, ppid, firstname.ToLower(), email, firstname, lastname, gender)) { PerformLogin(firstname.ToLower()); } } } } else { LitInformationCardMsg.Text = language.GetString("MessageInfoCardMissing"); } }
private void HandleOpenIDLogin() { OpenIdClient openID = new OpenIdClient(); switch (openID.RequestedMode) { case RequestedMode.IdResolution: openID.Identity = UserProfile.Current.OpenID; if (openID.ValidateResponse()) { OpenIdUser openIDUser = openID.RetrieveUser(); UserProfile.Current.OpenID = string.Empty; UserProfile.Current.Save(); CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString()); var user = csb.hisp_DataObject_GetUserIDByOpenID(openIDUser.Identity).ElementAtOrDefault(0); if (user != null) // User exists { MembershipUser membershipUser = Membership.GetUser(user.USR_ID); if (membershipUser != null) { PerformLogin(membershipUser.UserName); } } else // User doesn't exist { string nickname = openIDUser.GetValue("openid.sreg.nickname"); string email = openIDUser.GetValue("openid.sreg.email"); string fullname = openIDUser.GetValue("openid.sreg.fullname") ?? nickname; string gender = openIDUser.GetValue("openid.sreg.gender"); string firstname = string.Empty; string lastname = string.Empty; if (!string.IsNullOrEmpty(nickname) && !string.IsNullOrEmpty(email)) { string[] splitFullname = fullname.Split(' '); if (splitFullname.Length > 0) { firstname = splitFullname[0]; } if (splitFullname.Length > 1) { lastname = splitFullname[1]; } if (DataObjectUser.CreateUser(AuthenticationType.OpenID, openIDUser.Identity, nickname, email, firstname, lastname, gender)) { PerformLogin(nickname); } } else { LitOpenIDMsg.Text = language.GetString("MessageOpenIDNoDataReceived"); } } } else { LitOpenIDMsg.Text = language.GetString("MessageOpenIDLoginNotSuccess"); } break; case RequestedMode.CanceledByUser: LitOpenIDMsg.Text = language.GetString("MessageOpenIDLoginCancel"); break; } }