Beispiel #1
0
        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();
                }
            }
        }