盛大通行证统一认证 盛大通行证实名认证

盛大开发平台首页地址:http://wiki.open.sdo.com/index.php?title=SDCAS

盛大通行证统一认证 Web平台上的应用

基于Web平台的应用通过CAS(Central Authentication Service,是盛大通行证在Web应用中的统一认证系统。)完成盛大通行证用户的认证过程。

具体流程如下图:



1、用户在合作伙伴的Web应用页面中选择登录盛大通行证,浏览器跳转到盛大CAS认证页面。

2、用户在盛大CAS页面中登录盛大通行证。

3、登录后浏览器跳转回进入CAS之前的合作伙伴Web应用页面,并在地址上追加验证Token(Ticket参数)。

4、合作伙伴后台服务器访问CAS验证接口,并提交Ticket参数值。

5、获得验证结果(盛大通行证标识),登录完成

流程详述

盛大通行证CAS登录界面

接入方在应用界面中提供登录盛大通行证的方式(比如链接或按钮),用户选择登录盛大通行证后,将用户定向到CAS登录接口地址:

开发、测试环境:

https://cas.qftdev.sdo.com:8443/cas/login?service={0}

正式环境: https://cas.sdo.com:8443/cas/login?service={0}

其中,跳转前需将{0}替换成认证成功后返回的地址(注意参数需进行UrlEncode),通常为跳转到盛大通行证认证页面前的访问地址。

用户在CAS完成认证过程后,将重定向回{0}部分指定的地址,并且地址的后面将跟上用于取得认证结果的ticket参数。

访问正式环境前,需事先将合作方应用地址提交盛大审核。访问正式环境的应用地址URL必须使用域名,不允许使用IP访问。

代码示例

HTML Code<a href='https://cas.sdo.com:8443/cas/login?service=http%3A%2F%2Fwww.youdomain.com'>登录盛大通行证</a>

取得CAS认证结果

根据上节描述,用户在CAS中央认证服务器认证成功后,用户浏览器将导回原service参数指定的地址,并带有ticket参数。

此时,用户请求的地址重回接入方应用,接入方应用在收到请求后,需使用请求地址中的ticket参数去CAS认证结果。

跟上节描述不同,此是不再是将用户重定向到CAS地址,而是在响应用户请求前,由服务器端直接去CAS请求认证结果。

请求认证结果的地址如下:

开发、测试环境:https://cas.qftdev.sdo.com:8443/cas/Validate.SDID?service={0}&ticket={1}

正式环境:https://cas.sdo.com:8443/cas/Validate.SDID?service={0}&ticket={1}

盛大通行证统一认证 盛大通行证实名认证
其中{0}部分替换为和上节流程中使用的service参数相同的内容,{1}部分替换成请求查询字符串中的ticket参数的值。 必须{0}部分内容与上节中的service参数完全一致,否则可能导致验证失败!

请求这一地址后,得到的响应体内容为一个XML字符串:

如下为验证成功返回的结果:

XML Code<result> <success>true</success> <sdid>ABDE1234ABDE1234ABDE1234ABDE1234</sdid> <attributes> <attribute name=”roleGrade”>32</attribute> <attribute name=”alias”>血牛一号</attribute> </attributes></result>

其中success元素指示验证时否成功,sdid元素指示用户登录的盛大通行证账号标识。此外,attributes元素可以根据游戏的需求,返回不同的用户相关参数。

以下为验证失败返回的结果:

XML Code <result> <success>false</success> <code>3</code> <descript>调用错误 Ret=逻辑错误,命令字:0x4615 Desc=逻辑错误, 命令字:0x4615 </descript></result>

接入程序根据返回的XML内容分析获得认证结果。

对获得认证结果实现的示例代码

C#

C# Code private void GetCASAuthenResult() { string ticket = Request.QueryString["ticket"]; //针对https的处理 ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback( AcceptAllCertificatePolicy2.CheckValidationResult); WebClient request = new WebClient(); //path为认证时传递的service参数 string encodedPath = HttpUtility.UrlEncode(path); //获得认证结果 byte[] buffer = request.DownloadData(string.Format( "https://dev.cas.sdo.com:8443/cas/Validate.SDID?service={0}&ticket={1}", encodedPath, ticket)); string result = Encoding.GetEncoding("gb2312").GetString(buffer); XmlDocument doc = new XmlDocument(); doc.LoadXml(result); XmlNode success = doc.SelectSingleNode("//success"); if (string.Equals(success.InnerText, "true", StringComparison.OrdinalIgnoreCase)) { string sdid = doc.SelectSingleNode("//sdid").InnerText; FormsAuthentication.SetAuthCookie(sdid, false); } }

如果是.NET 2.0程序,请求https地址时,可能需要用到一个策略类,实现方式类似以下代码:

C# Codeusing System;;using System.Web;using System.Web.Security;using System.Security.Cryptography.X509Certificates;using System.Net.Security; /// <summary>/// 服务器证书认证, For 2.0/// </summary>public class AcceptAllCertificatePolicy2{ /// <summary> /// 服务器证书认证, For 2.0 /// </summary> public static bool CheckValidationResult( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { // Always accept return true; }}

用户注销

如果用户在游戏中做了注销的动作,此时盛大产品(CAS)并不能得到用户注销的动作通知,所以就会有游戏已注销,而圈圈没有注销,用户再使用盛大通行证登录就会直接使用原来的登录状态登录,而不是再次进入登录界面的情况。

为保证所有基于CAS的应用均处于注销状态,合作方应用需在本应用注销用户状态后,将用户重定向到以下地址,使得包括游戏和圈圈在内的所有应用均注销其登录状态:

开发、测试环境:https://pt.qftdev.sdo.com:8443/cas/logout?url=http%3a%2f%2fwww.youdomain.com

正式环境:https://cas.sdo.com:8443/cas/logout?url=http%3a%2f%2fwww.youdomain.com

其中URL参数为CAS完成注销后返回的地址,此参数需UrlEncode。

示例代码

ASP.NET

aspx

HTML Code<asp:LinkButton ID="lbtnLogout" runat="server" OnClick="lbtnLogout_Click">注销</asp:LinkButton>

aspx.cs

C# Code protected void lbtnLogout_Click(object sender, EventArgs e) { //将用户状态改为未登录 FormsAuthentication.SignOut(); Response.Redirect("https://cas.sdo.com:8443/cas/logout?url=http%3a%2f%2fwww.youdomain.com"); }

示例代码

ASP

<% Session.Abandon %> appLogout(0);

客户端程序形式应用

用户认证是基于盛大通行证实现的统一的,单点登陆的用户认证系统,为用户支付、计费提供基础服务。

接入应用需通过IGW的接口启动认证过程,并通过盛大产品服务端组件完成认证结果的获取,所以实施认证之前,需保证客户端成功加载了IGW组件,服务器端成功加载了盛大产品服务端组件。



以游戏为例,具体的流程如下:

1、游戏客户端调用IGW的ShowLoginDialog函数,将盛大认证界面呈现给用户。

2、用户完成认证过程后,IGW将认证结果返回给游戏客户端。

3、游戏客户端将认证返回的Token、UserId、IDCARD(如果用户登记了身份证号,则此参数返回用户身份证号)参数提交到游戏服务端,游戏服务端调用的盛大产品服务端组件的VerifyAuthentication函数,启动验证认证结果过程。

4、认证组件验证认证结果是否合法并将验证结果返回给游戏客户端。

在游戏完成登录后,圈圈 也会变成已登录状态,如果消销用户登录,则需调用IGW组件中的Logout函数。

接口函数

在进行盛大通行证用户认证过程中,需调用GameWidget.dll和盛大产品服务端组件(分为COM形式的版本:SDOServerCOM.dll和DLL形式的版本:SDOServerDLL.dll)中的函数。其中GameWidget.dll将被布署于客户端,而盛大产品服务端组件将布署于应用服务端。

ShowLoginDialog

GameWidget.dll中的显示登录对话框的接口函数。

C++ Codeint WINAPI ShowLoginDialog(const LOGINCALLBACKPROC Callback, int UserData, int Reserved);

参数说明

参数名类型说明备注

CallbackLOGINCALLBACKPROC回调函数

UserDataint用户数据,在Callback中传回

Reservedint保留未用填0

返回值

返回0表示成功,不等于0表示失败。

调用示例

/*缺代码*/

VerifyToken

盛大产品服务端组件中的VerifyToken函数在用户登录盛大通行证时,验证并获得认证结果。由接入应用的登录服务器端程序使用。

参数说明

参数名类型说明备注

IPBSTR盛大通行证验证服务器IP或者域名测试环境为61.172.247.235,正式环境为qftverify.sdo.com

PortBSTR盛大通行证验证服务器端口测试环境和正式环境均为8010

ResultBSTR *验证结果<0 未知错误,静态库调用失败

0 验证成功,返回格式为: 0^$^USERID^$^IDCARD 其中USERID为32位的帐户唯一标识,IDCARD为帐户对应的防沉迷身份证信息

1 内容或者签名为空

2 该签名已经验证过

3 签名验证失败

4 解析内容失败或者内容格式不对

5 超时

6 系统错误

7 socket error。7^$^SendMessage失败:错误码

返回值

返回0表示成功,不等于0表示失败。

调用示例

取自"http://wiki.open.sdo.com/index.php?title=SDCAS"

  

爱华网本文地址 » http://www.aihuau.com/a/25101013/173892.html

更多阅读

公告:浙江预约挂号平台信誉度及账户统一认证成功升级

公告:挂号平台信誉度及账户统一认证成功升级2014年04月25日 10:21:56|浙江在线新闻网站|挂号平台|  9浙江在线健康网4月25日讯4月24日,浙江省医院预约诊疗服务平台已成功进行升级。为组建安全、实用、高效的预约诊疗服务管理机制,培

免费注册盛大网络游戏白金账号指南! 盛大游戏账号注册

盛大游戏推广员帐号:sndaGM004白金帐号注册:http://tg.sdo.com/861372691注册盛大通行证时,请通过以上“白金帐号”链接申请或官方填写推广员帐号:sndaGM004进入游戏后可按等级获得至尊奖励。盛大白金帐号  1.盛大白金帐号是什么? 

统一身份认证 身份证实名认证

1 数字化校园数字化校园的概念最早出现于1990年,由美国克莱蒙特大学教授凯尼斯·格林(KennethGreen)发起并主持的一项大型科研项目“信息化校园计划”( The Campus ComputingProject)。到1998年1月31日,美国前副总统戈尔(AL G0RE)最先

指纹锁800lock A指纹锁策划纪实

前言A指纹锁是获得欧洲统一认证和美国联邦统一委员会认证的、采用瑞典FPC公司核心技术的,目前市场上最先进的指纹锁之一。该公司作为一家崭新的科技型消费品企业,品牌创始人胡总主要从事B2B的商业运营,之前对B2C市场的探索缺乏经验,致

声明:《盛大通行证统一认证 盛大通行证实名认证》为网友淡如菊的女子分享!如侵犯到您的合法权益请联系我们删除