读书人

paip.网站接入QQ登录小结

发布时间: 2012-10-17 10:25:47 作者: rapoo

paip.网站接入QQ登录总结


paip.网站接入QQ登录总结

作者Attilax , 1466519819@qq.com

1.建立图片按钮连接
————--------------
我的是这样的。
<a href="/qqlogin/" target="_blank"><img src="http://qzonestyle.gtimg.cn/qzone/vas/opensns/res/img/Connect_logo_7.png"

alt="qqloginImg" border="0"></a>


2.下载.NET SDK从官网上,并加入项目引用
--------------------------------
Connect_.NET_SDK_for_OAuth2_V1.1
QConnectSDK.dll
RestSharp.dll
Newtonsoft.Json.dll


3.配置WEB.CONFIG,加入你的APPID和KEY
------------------------------------------------
3.a根结点<configuration>,加入以下配置
--------------

<configSections>
<!--qqlogin cfg1/3-->
<sectionGroup name="QQSectionGroup">
<section name="QzoneSection" type="System.Configuration.NameValueSectionHandler,System,

Version=4.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection,

EntityFramework, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<!--//qqlogin cfg1/3 end-->
</configSections>
................................................

3.b配置<QQSectionGroup>
---------------------------------------
<!-- qqlogin cifg start-->
<QQSectionGroup>
<QzoneSection>
<add key="AppKey" value="100310245" />
<!--这里这填上你在http://connect.qq.com/manage/注册后获得的APP ID-->
<add key="AppSecret" value="cf7c7516d074164f175fb64225c1938e" />
<!--这里填上注册后的APP KEY-->
<add key="CallBackURI" value="http://www.zuketang.com/qqlogin/calback.aspx" />
<!--注册时写的回调地址-->
<add key="AuthorizeURL" value="https://graph.qq.com/oauth2.0/authorize" />
</QzoneSection>
</QQSectionGroup>

3.c配置<appSettings>,这里好向不配置也可以了用。
-----------------
<appSettings>

<!--qqlogcfg c-->
<!--<add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled"

value="true" /> <add key="DaoType" value="Codingwell.DevText.SQLDAL" />-->
<add key="appKey" value="100310245" />
<!--这里如上面一样-->
<add key="appSecret" value="cf7c7516d074164f175fb64225c1938e" />
<add key="callbackUrl" value="http://www.zuketang.com/qqreturn.htm" />
<add key="SmtpHost" value="smtp.gmail.com" />
<add key="SmtpUser" value="" />
<add key="SmtpPassword" value="" />
<add key="EnableSsl" value="true" />
<add key="SslPort" value="587" />
<!--end qqlogcfg c-->
</appSettings>


4.发起请求/qqlogin/default.aspx
-----------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
//
//TODO: 在此处添加 逻辑
//
GetRequestToken();
}


private void GetRequestToken()
{
QzoneContext 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,ge

t_fanslist,get_idolist,add_idol,del_idol,add_one_blog,add_topic,get_tenpay_addr";
string authenticationUrl = context.GetAuthorizationUrl(state, scope);
//request token, request token secret 需要保存起来
//在demo演示中,直接保存在全局变量中.真实情况需要网站自己处理
Application["requeststate"] = state;
Response.Redirect(authenticationUrl);

}

5.接收OPENID并保存实现登录/qqlogin/calback.aspx
------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Params["code"] != null)
{
QOpenClient qzone = null;
User currentUser = null;

string verifier = Request.Params["code"];
string state = Application["requeststate"].ToString();
qzone = new QOpenClient(verifier, state);
currentUser = qzone.GetCurrentUser();
if (null != currentUser)
{
this.Label1.Text = "成功登陆";
this.Label2.Text = currentUser.Nickname;
this.Image1.ImageUrl = currentUser.Figureurl;

}
Session["QzoneOauth"] = qzone;

//set login token
string loginuname = qzone.OAuthToken.OpenId;
IloginController lc = god.getloginController();
lc.setLoginToken(loginuname);

IqqInfoController qic = god.getqnfoController();
qqinfo qi = new qqinfo();
qi.openid = loginuname;
qi.user = currentUser;
qic.save(qi);

Response.Redirect("/");
}
}


6.设置网站类型为.NET 4.0 支持
--------------------------------
因为此QQ SDK是.NET4.0开发的,需要.NET4.0环境。

IIS,网站》应用程序池。ASP.NET v4.0 Classic

IIS管理器》连接---根结点机器>IIS> ISAPI 和 CGI 限制>打开ASP.NET4.0 的扩展限制。。一个是FRAMWORK64位的不用管,只打开

FRAMWORK32版本的。。

参考
--------------
网站使用QQ登陆 - 追 - 博客园.htm
OAuth 、Xauth 和OAuth2.0有什么区别 [复制链接]

读书人网 >网络基础

热点推荐