菜单

C#网站实现QQ第三着登陆# C#快速支付教程

2018年11月14日 - 一点资讯

C#网站实现QQ第三正值登陆

说从于网站上面可以直接采用QQ登录功能大家并无陌生。但翻其官提供的SDK包着倒是绝非C#方向的。

唯独咱有个牛人让张善友,做了一个民间SDK。下面我们尽管之所以外所勾画的SDK,进行网站添加第三正值qq登录的功力。

SDK开源地址:http://opensns.codeplex.com/

一如既往、申请账号

1.报名地址:http://connect.qq.com/。申请完毕之后会得到一个APP ID和App
Key。这点儿只字符串会当以后配置的时节用到。

当部署文件web.config加入QQ登陆所要之组成部分布局参数,如下图所示:

<configuration>

<configSections>

<sectionGroup name=”QQSectionGroup”>

<section name=”QzoneSection”
type=”System.Configuration.NameValueSectionHandler,System,
Version=4.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089″ />

</sectionGroup>

</configSections>

<QQSectionGroup>

<QzoneSection>

<add key=”AppKey” value=”” />

<add key=”AppSecret” value=”” />

<add key=”CallBackURI” value=”” />

<add key=”AuthorizeURL”
value=”https://graph.qq.com/oauth2.0/authorize” />

</QzoneSection>

</QQSectionGroup>

AppKey是申请QQ登录成功后,分配受采用之appid;AppSecret是申请QQ登录成功后,分配给网站的appkey;

CallBackURI是QQ登陆成功后的回调地址:AuthorizeURL是QQ互联的OAth2认证地址。

2、在品种中补充加三个援Newtonsoft.Json.dll、RestSharp.dll和
QConnectSDK.dll,
在页面上停放按钮,打开qq登录的页面,然后登录成功以后回调您的网站的页面。此时而用户在公的网站来账号,那就好绑定现有账号,或者新登记一个账号。

脚上代码:(MVC版本的)

/// <summary>

/// QQ登陆页面

/// </summary>

[HttpGet]

public ActionResult Login(string returnUrl)

{

this.Session[“return”] = returnUrl;

var context = new QzoneContext();

string state = Guid.NewGuid().ToString(“N”);

Session[“requeststate”] = state;

string scope =
“get_user_info,add_share,list_album,upload_pic,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idolist,add_idol,del_idol,add_one_blog,add_topic,get_tenpay_addr”;

var authenticationUrl = context.GetAuthorizationUrl(state, scope);

return new RedirectResult(authenticationUrl);

}

/// <summary>

/// 回调页面

/// </summary>

public ActionResult QQConnect(LoginModel model)

{

QOpenClient qzone = null;

QConnectSDK.Models.User currentUser = null;

var verifier = Request.Params[“code”];

string state1 = Session[“requeststate”].ToString();

qzone = new QOpenClient(verifier, state1);

currentUser = qzone.GetCurrentUser();

if (null != currentUser)

{

return Content(currentUser.Nickname);

}

Session[“QzoneOauth”] = qzone;

return View();

}

WebForm版本的:

QQ登陆页面

namespace OpenConnect.WebSample.Account

{

public partial class LoginToQQ : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

GetRequestToken();

}

private void GetRequestToken()

{

var context = new QzoneContext();

string state = Guid.NewGuid().ToString().Replace(“-“, “”);

string scope =
“get_user_info,add_share,list_album,upload_pic,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idolist,add_idol,del_idol,add_one_blog,add_topic,get_tenpay_addr”;

var authenticationUrl = context.GetAuthorizationUrl(state,scope);

//request token, request token secret 需要保存起来

//在demo演示着,直接保存在全局变量中.真实情况需要网站自己处理

Session[“requeststate”] = state;

Response.Redirect(authenticationUrl);

}

}

}

回调页面

namespace OpenConnect.WebSample.Account

{

public partial class QQCallback : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (Request.Params[“code”] != null)

{

QOpenClient qzone = null;

User currentUser = null;

var verifier = Request.Params[“code”];

string state = Session[“requeststate”].ToString();

qzone = new QOpenClient(verifier, state);

currentUser = qzone.GetCurrentUser();

if (null != currentUser)

{

this.result.Text = “成功登陆”;

this.Nickname.Text = currentUser.Nickname;

this.Figureurl.ImageUrl = currentUser.Figureurl;

}

Session[“QzoneOauth”] = qzone;

}

}

}

用户登录后,只见面获到用户之OpenId,OpenID和QQ号是各个对许涉及。不见面沾到用户之qq号码。

微信号:net4k8k(做(4k+8k)+月薪的程序员)

微信名:net知识分享

介绍:主要为发表与分享.Net和安卓文章为主,争做全栈开发工程师,爱学习,爱挑战,爱编程。

打造C#入门教程。总结自己曾经习得的技艺系统。分享到网络。为中国底软件复兴贡献好的相同客力量。

万一产生非得当的远在,还呼吁指正。

作者:成笑笑

专职:应届毕业生,找工作中。

自己联系方式:cxx@chengxiaoxiao.com

自家之自媒体:

GitHub:https://github.com/shellcheng

My CnBlogs:http://www.cnblogs.com/happpytoo/

今日头长:http://toutiao.com/m5443584213/

少数新闻:http://www.yidianzixun.com/home?page=channel&id=m21753

初浪微博:http://weibo.com/5706473282/

搜狐公众平台:http://mp.i.sohu.com/profile?xpt=NUJENDc2NjZENTIyMjlBRjk4QkIzRDczNTVFMUVFODBAcXEuc29odS5jb20=

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图