当前位置: 代码迷 >> .NET面试 >> 现下流行 第三登录 新手求教
  详细解决方案

现下流行 第三登录 新手求教

热度:16   发布时间:2016-05-02 20:17:36.0
现在流行 第三登录 新手求教
如题 现在流行 第三登录 新手求教 说一个步骤 资料 源码案例 都可以 
用qq 或者新浪登录 就像现在CSDN 也可以啦~~

------解决方案--------------------
自己写的sina 的
C# code
private const string _apiKey = "";//申请的App Key        private const string _apiKeySecret = "";//申请的App Secret        private const string _authorize = "https://api.weibo.com/oauth2/authorize";        private const string _accessToken = "https://api.weibo.com/oauth2/access_token";        private const string _userShow = "https://api.weibo.com/2/users/show.json";        private const string _uploadTextUrl = "https://api.weibo.com/2/statuses/upload_url_text.json";        private const string _update = "https://api.weibo.com/2/statuses/update.json";        public string AuthorizeRequest(string client)        {            Uri uri = new Uri(_authorize);            StringBuilder sb = new StringBuilder(uri.ToString());            sb.AppendFormat("?client_id={0}", _apiKey);            sb.AppendFormat("&redirect_uri={0}", "http://member.1schina.com/other/sinaauth.aspx");            sb.AppendFormat("&response_type={0}", "code");            sb.AppendFormat("&forcelogin={0}", "true");            if(string.IsNullOrEmpty(client))                sb.AppendFormat("&display={0}", "wap2.0");            string url = sb.ToString();            return url;        }        public ApiAccessToken GetAccessToken(string code, string requestToken, string requestTokenSecrect, string verify)        {            Dictionary<string, string> prame = new Dictionary<string, string>();            prame.Add("client_id", _apiKey);            prame.Add("client_secret", _apiKeySecret);            prame.Add("grant_type", "authorization_code");            prame.Add("code", code);            prame.Add("redirect_uri", "http://member.1schina.com/other/sinaauth.aspx");            string resultString = HttpRequestCommand.RequestResult(_accessToken, HttpRequestCommand.GetRequestString(prame), "POST");            //ErrorLog.Info("sinaJson:" + resultString);            HttpRequestCommand.JsonString = resultString;            ApiAccessToken result = new ApiAccessToken();            JObject JsonType = JObject.Parse(resultString);            if (!string.IsNullOrEmpty(((string)JsonType["access_token"])))            {                result = InstantiatedApiAccessToken(JsonType);            }            return result;        }        private static ApiAccessToken InstantiatedApiAccessToken(JObject JsonType)        {            ApiAccessToken result = new ApiAccessToken();            result.AccessToken = (string)JsonType["access_token"];            result.ExpiresIn = ((int)JsonType["expires_in"]).ToString();            result.AccountId = (string)JsonType["uid"];                        return result;        }        public ApiUserInfo GetUserBase(ApiAccessToken accessToken)        {            Dictionary<string, string> prame = new Dictionary<string, string>();            prame.Add("access_token",accessToken.AccessToken);            prame.Add("uid",accessToken.AccountId);            string resultString = HttpRequestCommand.RequestResult(_userShow, HttpRequestCommand.GetRequestString(prame), "GET");            JObject JsonType = JObject.Parse(resultString);            ApiUserInfo result = new ApiUserInfo();            if (!string.IsNullOrEmpty(((string)JsonType["screen_name"])))            {                result.AccountName = (string)JsonType["screen_name"];                result.AccountId = ((decimal)JsonType["id"]).ToString();                result.AccountPicUrl = (string)JsonType["profile_image_url"];                result.IsEmpty = false;            }            else                ErrorLog.Info(resultString);            return result;        }protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {                if (!string.IsNullOrEmpty(Request.QueryString["code"]))                {                    Session["SinaCode"] = Request.QueryString["code"];                    GetAccessToken();                }                else                {                    GetRequestToken();                }            }        }private void GetAccessToken()        {            try            {                ApiAccessToken token = business.GetAccessToken(Session["SinaCode"].ToString(), "", "", "");                ApiUserInfo user = business.GetUserBase(token) as ApiUserInfo;                if(user.IsEmpty)                {                    HttpUtility.Help.ErrRedirectToBackUrl();                    return;                }                MemberBusiness memberBusiness = new MemberBusiness();                if (Request.Cookies["userstate"] == null)                {                    HttpUtility.AccountLogin(token, user,"Sina");                }                HttpUtility.RedirectToBackUrl();            }            catch (WebException we)            {                Response.Write(new StreamReader(we.Response.GetResponseStream()).ReadToEnd());            }        }        private void GetRequestToken()        {            string url = "";            if(Session["client"]!=null)                url = business.AuthorizeRequest(Session["client"].ToString());            else                url = business.AuthorizeRequest("");            Response.Redirect(url,false);        }
  相关解决方案