private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e) { try { var uri = e.Url; if (uri.AbsoluteUri.StartsWith(AMicroblogAPI.Environment.RedirectUri))//如果成功授权 { var authCode = uri.ToString().Split(new string[] { "?code=" }, StringSplitOptions.None)[1]; AMicroblogAPI.Environment.AccessToken = AMicroblog.GetAccessTokenByAuthorizationCode(authCode, AMicroblogAPI.Environment.RedirectUri); accessToken = AMicroblogAPI.Environment.AccessToken.Token; try { if (!containImage)//如果不带图片 { AMicroblog.PostStatus(content); } else//如果带图片 { var u = new UpdateStatusWithPicInfo(); u.Pic = "weiboTemp.png"; u.Status = content; AMicroblog.PostStatusWithPic(u); } this.Close(); MessageBox.Show("分享到微博成功!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception a) { MessageBox.Show("更新微博错误!原因如下:\n" + a.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } catch (Exception a) { MessageBox.Show(a.Message, "错误"); } }
private void button登录_Click(object sender, EventArgs e) { Form新浪微博授权页 form = new Form新浪微博授权页(content, checkBox发布图片.Checked); form.Show(); var uri = AMicroblog.GetAuthorizationUri(AMicroblogAPI.Environment.RedirectUri, "code", null, "mobile") + "&forcelogin=true"; Process.Start(uri); this.Close(); }
public string GetAuthorizeUri() { return(AMicroblog.GetAuthorizationUri(SinaConfig.RedirectUri)); //string uri = "https://api.weibo.com/oauth2/authorize"; //List<OAuthParameter> pars = new List<OAuthParameter>(); //pars.Add(new OAuthParameter("client_id", SinaConfig.ClientId)); //pars.Add(new OAuthParameter("response_type", "code")); //pars.Add(new OAuthParameter("redirect_uri",SinaConfig.RedirectUri)); //uri = uri + "?" + SinaOAuthUtil.GetQueryStringFromParameters(pars); //return uri; }
public ActionResult SocialBind() { //绑定第三方账号 object su = Session[sKey_SocialUserKey]; SocialUser socialUser = su != null ? su as SocialUser : null; string socialName = string.Empty; if (socialUser != null) { switch (socialUser.SocialUserType) { case SocialUserTypeEnum.QQ: try { OAuthToken oToken = new OAuthToken(); oToken.AccessToken = socialUser.AccessToken; oToken.OpenId = socialUser.Uid; QOpenClient qclient = new QOpenClient(oToken); socialName = qclient.GetCurrentUser().Nickname; } catch { } break; case SocialUserTypeEnum.Sina: try { OAuthAccessToken stoken = new OAuthAccessToken(); stoken.Token = socialUser.AccessToken; stoken.UserID = socialUser.Uid; socialName = AMicroblog.GetUserInfo(Convert.ToInt64(stoken.UserID), stoken).Name; } catch { } break; } } ViewBag.SocialName = socialName; return(View("~/Views/Account/socialbind.cshtml")); }
public bool GetAccessToken(string code, out string access_token, out string uid) { bool is_ok = false; access_token = string.Empty; uid = string.Empty; try { OAuthAccessToken token = AMicroblog.GetAccessTokenByAuthorizationCode(code, SinaConfig.RedirectUri); is_ok = true; access_token = token.Token; uid = token.UserID; } catch { } return(is_ok); //access_token = string.Empty; //uid = string.Empty; //string uri = "https://api.weibo.com/oauth2/access_token"; //List<OAuthParameter> list = new List<OAuthParameter>(); //list.Add(new OAuthParameter("client_id", SinaConfig.ClientId)); //list.Add(new OAuthParameter("client_secret",SinaConfig.ClientSecret)); //list.Add(new OAuthParameter("grant_type", GrantTypeEnum.authorization_code.ToString())); //list.Add(new OAuthParameter("code", code)); //list.Add(new OAuthParameter("redirect_uri", SinaConfig.RedirectUri)); //bool is_ok = false; //try //{ // string result = SinaOAuthUtil.HttpPost(uri, SinaOAuthUtil.GetQueryStringFromParameters(list)); // Dictionary<string, object> dic = SinaOAuthUtil.ParseJson<Dictionary<string, object>>(result); // access_token = dic["access_token"].ToString(); // uid = dic["uid"].ToString(); // is_ok = true; //} //catch { } return(is_ok); }
private void Form新浪微博授权页_Load(object sender, EventArgs e) { var uri = AMicroblog.GetAuthorizationUri(AMicroblogAPI.Environment.RedirectUri, "code", null, "mobile") + "&forcelogin=true"; webBrowser1.Navigate(uri); }
private AdvancedResult <string> Login(string username, string password, ref AdUser loginUser) { UserServiceClient client = new UserServiceClient(); AdvancedResult <string> response = new AdvancedResult <string>(); if (string.IsNullOrEmpty(username) || username.Length < 4 || username.Length > 16) { response.Error = AppError.ERROR_FAILED; response.ExMessage = "登陆失败!用户名长度不合法!"; return(response); } if (string.IsNullOrEmpty(password) || password.Length < 6 || password.Length > 18) { response.Error = AppError.ERROR_FAILED; response.ExMessage = "登陆失败!密码长度不合法!"; return(response); } response = client.Login(username, SecurityHelper.MD5(password)); if (response.Error == AppError.ERROR_SUCCESS) { WriteAuthCookie(username, response.Data); AdvancedResult <AdUser> aduser = client.GetUserInfo(response.Data); loginUser = aduser.Data; //绑定第三方账号 //object su = Session[sKey_SocialUserKey]; //SocialUser socialUser = su != null ? su as SocialUser : null; SocialUser socialUser = SecurityHelper.DecryptObject <SocialUser>(CookieHelper.Get(sKey_SocialUserKey), null); if (socialUser != null) { AdvancedResult <string> result = client.IsBindSocialUser(socialUser); if (result.Error != AppError.ERROR_SUCCESS) { socialUser.UserId = aduser.Data.AdUserId; AdvancedResult <string> bindresponse = client.BindSocialUserAfterLogin(response.Data, socialUser); if (bindresponse.Error == AppError.ERROR_SUCCESS) { switch (socialUser.SocialUserType) { case SocialUserTypeEnum.QQ: try { OAuthToken oToken = new OAuthToken(); oToken.AccessToken = socialUser.AccessToken; oToken.OpenId = socialUser.Uid; QOpenClient qclient = new QOpenClient(oToken); var postresult = qclient.AddTopic(Config.Instance.RegisteredTwitter, "2", SiteUrl); } catch { } break; case SocialUserTypeEnum.Sina: try { OAuthAccessToken stoken = new OAuthAccessToken(); stoken.Token = socialUser.AccessToken; stoken.UserID = socialUser.Uid; UpdateStatusInfo statusInfo = new UpdateStatusInfo(); statusInfo.Status = Config.Instance.RegisteredTwitter + SiteUrl; var postresult = AMicroblog.PostStatus(statusInfo, stoken); } catch { } break; } //绑定成功 response.ExMessage = "绑定成功!"; //Session[sKey_SocialUserKey] = null; CookieHelper.Remove(sKey_SocialUserKey); } else { //绑定失败 response.ExMessage = "绑定失败!请确认该第三方账号未与本站已注册账户绑定!"; } } else { response.ExMessage = "绑定失败!该第三方账号已经于本站现有账号绑定!"; } } } client.Close(); client = null; return(response); }