Ejemplo n.º 1
0
 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, "错误"); }
 }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
        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"));
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        private void Form新浪微博授权页_Load(object sender, EventArgs e)
        {
            var uri = AMicroblog.GetAuthorizationUri(AMicroblogAPI.Environment.RedirectUri, "code", null, "mobile") + "&forcelogin=true";

            webBrowser1.Navigate(uri);
        }
Ejemplo n.º 7
0
        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);
        }