protected void Page_Load(object sender, EventArgs e) { if (Request["oauth_problem"] != null) { StringBuilder sb = new StringBuilder(); sb.Append("<script language='javascript'>"); sb.Append("window.close();"); sb.Append("</script>"); Response.Write(sb.ToString()); Response.End(); } else if (Request["oauth_token"] == null) { var credentials = new OAuthCredentials { CallbackUrl = ConvertRelativeUrlToAbsoluteUrl("~/DesktopModules/CoreModules/SignIn/LoginLinkedIn.aspx"), ConsumerKey = Session["LinkedInAppId"] as string, ConsumerSecret = Session["LinkedInAppSecret"] as string, Verifier = "123456", Type = OAuthType.RequestToken }; var client = new RestClient { Authority = "https://api.linkedin.com/uas/oauth", Credentials = credentials }; var request = new RestRequest { Path = "requestToken" }; RestResponse response = client.Request(request); token = response.Content.Split('&').Where(s => s.StartsWith("oauth_token=")).Single().Split('=')[1]; token_secret = response.Content.Split('&').Where(s => s.StartsWith("oauth_token_secret=")).Single().Split('=')[1]; Response.Redirect("https://api.linkedin.com/uas/oauth/authorize?oauth_token=" + token); } else if (Request["oauth_verifier"] != null) { token = Request["oauth_token"]; verifier = Request["oauth_verifier"]; var credentials = new OAuthCredentials { ConsumerKey = Session["LinkedInAppId"] as string, ConsumerSecret = Session["LinkedInAppSecret"] as string, Token = token, TokenSecret = token_secret, Verifier = verifier, Type = OAuthType.AccessToken, ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader, SignatureMethod = OAuthSignatureMethod.HmacSha1, Version = "1.0" }; var client = new RestClient { Authority = "https://api.linkedin.com/uas/oauth", Credentials = credentials, Method = WebMethod.Post }; var request = new RestRequest { Path = "accessToken" }; RestResponse response = client.Request(request); string content = response.Content; string accessToken = response.Content.Split('&').Where(s => s.StartsWith("oauth_token=")).Single().Split('=')[1]; string accessTokenSecret = response.Content.Split('&').Where(s => s.StartsWith("oauth_token_secret=")).Single().Split('=')[1]; var people = new LinkedInService(accessToken, accessTokenSecret).GetCurrentUser(); var userName = "******" + people.id; string password = GeneratePasswordHash(userName); Session["CameFromSocialNetwork"] = true; StringBuilder sb = new StringBuilder(); if (Membership.GetUser(userName) == null) { //The user doesnt exists, needs to be registered Session["LinkedInUserName"] = userName; string urlRegister = ConvertRelativeUrlToAbsoluteUrl("~/DesktopModules/CoreModules/Register/Register.aspx"); sb.Append("<script language='javascript'>"); sb.Append("window.opener.location.href = '"); sb.Append(urlRegister); sb.Append("';window.opener.focus();"); sb.Append("window.close();"); sb.Append("</script>"); Response.Write(sb.ToString()); Response.End(); } else { Session["CameFromSocialNetwork"] = true; Session["UserName"] = userName; var redirect = ConvertRelativeUrlToAbsoluteUrl(HttpUrlBuilder.BuildUrl("~/DesktopModules/CoreModules/SignIn/LoginIn.aspx")); sb.Append("<script language='javascript'>"); sb.Append("window.opener.location.href = '"); sb.Append(redirect); sb.Append("';window.opener.focus();"); sb.Append("window.close();"); sb.Append("</script>"); Response.Write(sb.ToString()); Response.End(); } } }
protected void Page_Load(object sender, EventArgs e) { if (Request["oauth_problem"] != null) { StringBuilder sb = new StringBuilder(); sb.Append("<script language='javascript'>"); sb.Append("window.close();"); sb.Append("</script>"); Response.Write(sb.ToString()); Response.End(); } else if(Request["oauth_token"] == null) { var credentials = new OAuthCredentials { CallbackUrl = ConvertRelativeUrlToAbsoluteUrl("~/DesktopModules/CoreModules/SignIn/LoginLinkedIn.aspx"), ConsumerKey = Session["LinkedInAppId"] as string, ConsumerSecret = Session["LinkedInAppSecret"] as string, Verifier = "123456", Type = OAuthType.RequestToken }; var client = new RestClient { Authority = "https://api.linkedin.com/uas/oauth", Credentials = credentials }; var request = new RestRequest { Path = "requestToken" }; RestResponse response = client.Request(request); token = response.Content.Split('&').Where(s => s.StartsWith("oauth_token=")).Single().Split('=')[1]; token_secret = response.Content.Split('&').Where(s => s.StartsWith("oauth_token_secret=")).Single().Split('=')[1]; Response.Redirect("https://api.linkedin.com/uas/oauth/authorize?oauth_token=" + token); } else if (Request["oauth_verifier"] != null) { token = Request["oauth_token"]; verifier = Request["oauth_verifier"]; var credentials = new OAuthCredentials { ConsumerKey = Session["LinkedInAppId"] as string, ConsumerSecret = Session["LinkedInAppSecret"] as string, Token = token, TokenSecret = token_secret, Verifier = verifier, Type = OAuthType.AccessToken, ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader, SignatureMethod = OAuthSignatureMethod.HmacSha1, Version = "1.0" }; var client = new RestClient { Authority = "https://api.linkedin.com/uas/oauth", Credentials = credentials, Method = WebMethod.Post }; var request = new RestRequest { Path = "accessToken" }; RestResponse response = client.Request(request); string content = response.Content; string accessToken = response.Content.Split('&').Where(s => s.StartsWith("oauth_token=")).Single().Split('=')[1]; string accessTokenSecret = response.Content.Split('&').Where(s => s.StartsWith("oauth_token_secret=")).Single().Split('=')[1]; var people = new LinkedInService(accessToken, accessTokenSecret).GetCurrentUser(); var userName = "******" + people.id; string password = GeneratePasswordHash(userName); Session["CameFromSocialNetwork"] = true; StringBuilder sb = new StringBuilder(); if (Membership.GetUser(userName) == null) { //The user doesnt exists, needs to be registered Session["LinkedInUserName"] = userName; string urlRegister = ConvertRelativeUrlToAbsoluteUrl("~/DesktopModules/CoreModules/Register/Register.aspx"); sb.Append("<script language='javascript'>"); sb.Append("window.opener.location.href = '"); sb.Append(urlRegister); sb.Append("';window.opener.focus();"); sb.Append("window.close();"); sb.Append("</script>"); Response.Write(sb.ToString()); Response.End(); } else { Session["CameFromSocialNetwork"] = true; Session["UserName"] = userName; var redirect = ConvertRelativeUrlToAbsoluteUrl(HttpUrlBuilder.BuildUrl("~/DesktopModules/CoreModules/SignIn/LoginIn.aspx")); sb.Append("<script language='javascript'>"); sb.Append("window.opener.location.href = '"); sb.Append(redirect); sb.Append("';window.opener.focus();"); sb.Append("window.close();"); sb.Append("</script>"); Response.Write(sb.ToString()); Response.End(); } } }