康盛旗下产品的搭建

1、UCenter

这个当然是最基本的东西,安装起来也很简单,官方就有教程

http://faq.comsenz.com/userguide/x/install.html

4.  深入研究 UCenter API 之 网站搭建(转载)

安装完成后,因为还没有安装别的应用,所以应用数量是:0

 

2、Discuz

如果仅仅是为了用 UCenter,那有点得不偿失了,一般都会配上论坛

这里采用的是 Discuz! 7.2

http://faq.comsenz.com/userguide/discuz/install.html

4.  深入研究 UCenter API 之 网站搭建(转载)

这里没有什么难度,网上有许多教程

 

 

Asp.net 测试网站的搭建

新建网站

既然是 UCenter 和 Asp.net 通讯,那肯定要搭建一个 Asp.net 的网站了

为了 方便测试,我们最好把网站直接在 IIS 中调试

新建网站应用程序 — 打开属性页面

4.  深入研究 UCenter API 之 网站搭建(转载)

这步非不要操作,但是可以模拟真实的场景,并且还可以在 IIS 里调试

 

设置完后我们看一下 IIS 里的情况(我把 UCenter 和 Discuz 挂在 IIS 下了)

 

在 UCenter 下新建应用程序

登录后点添加新应用

4.  深入研究 UCenter API 之 网站搭建(转载)

 

按照这张图配置一下

4.  深入研究 UCenter API 之 网站搭建(转载)

这里就一个地方和配置 php 的网站不同,就是“应用接口文件名称”

当然你也可以用 .php 然后配置 IIS,但是这个多麻烦?用 ashx 是最方便的,在后面会有详解,到时候你就知道为什么了

 

提交后复制一下配置信息,后面有用

4.  深入研究 UCenter API 之 网站搭建(转载)

 

配置Asp.net网站

接下来我们需要把配置文件写入 Asp.net 的网站的 Web.config 中

乍一看,这配置是 php 格式的!

但这里有一份完整的配置信息,只要替换对应的地方就行:

View Code
<!--客户端版本-->
<add key="UC_CLIENT_VERSION" value="1.5.2"/>
<!--发行时间-->
<add key="UC_CLIENT_RELEASE" value="20101001"/>

<!--API 开关(value类型:True False 默认值:True)-->
<!--是否允许删除用户-->
<add key="API_DELETEUSER" value="True"/>
<!--是否允许重命名用户-->
<add key="API_RENAMEUSER" value="True"/>
<!--是否允许得到标签-->
<add key="API_GETTAG" value="True"/>
<!--是否允许同步登录-->
<add key="API_SYNLOGIN" value="True"/>
<!--是否允许同步登出-->
<add key="API_SYNLOGOUT" value="True"/>
<!--是否允许更改密码-->
<add key="API_UPDATEPW" value="True"/>
<!--是否允许更新关键字-->
<add key="API_UPDATEBADWORDS" value="True"/>
<!--是否允许更新域名解析缓存-->
<add key="API_UPDATEHOSTS" value="True"/>
<!--是否允许更新应用列表-->
<add key="API_UPDATEAPPS" value="True"/>
<!--是否允许更新客户端缓存-->
<add key="API_UPDATECLIENT" value="True"/>
<!--是否允许更新用户积分-->
<add key="API_UPDATECREDIT" value="True"/>
<!--是否允许向UCenter提供积分设置-->
<add key="API_GETCREDITSETTINGS" value="True"/>
<!--是否允许获取用户的某项积分-->
<add key="API_GETCREDIT" value="True"/>
<!--是否允许更新应用积分设置-->
<add key="API_UPDATECREDITSETTINGS" value="True"/>
<!--API 开关结束-->

<!--返回值设置-->
<!--返回成功(默认:1)-->
<add key="API_RETURN_SUCCEED" value="1"/>
<!--返回失败(默认:-1)-->
<add key="API_RETURN_FAILED" value="-1"/>
<!--返回禁用(默认:-2)-->
<add key="API_RETURN_FORBIDDEN" value="-2"/>
<!--返回值设置结束-->

<!--[必填]通信密钥-->
<add key="UC_KEY" value="FD144298AF7E4797A66ACC0C18C97EA3"/>
<!--[必填]UCenter地址-->
<add key="UC_API" value="http://localhost/ucenter"/>
<!--[必填]默认编码-->
<add key="UC_CHARSET" value="utf-8"/>
<!--[非必填]UCenter IP-->
<add key="UC_IP" value=""/>
<!--[必填]应用ID-->
<add key="UC_APPID" value="2"/>

 

其中,除了标记必填的,别的都可以不填,默认值就是这个

Asp.net 网站算是搭建成功了,但是现在还没有用到那个类库呢!

 

 

类库的使用方法

类库概况

4.  深入研究 UCenter API 之 网站搭建(转载)

 

类库分为以下几个部分

  1. Api 用于提供给 UCenter 调用的结构
  2. Client 用于调用 UCenter 的接口
  3. Model 调用过程中的一些数据封装
  4. UcConfig 静态类,读取上面的配置文件信息
  5. UcUtility 一些常用函数
  6. App.config 配置文件示例

 

 

调用 UCenter API

这步非常简单,只要配置好前面的东西,然后简单地调用一个类就行了。

 

1 IUcClient client = new UcClient();
2 var user = client.UserLogin("admin", "admin");//登陆
3 if (user.Success)//判断是否登陆成功
4 {
5     client.PmSend(0, 0, "公告", "测试公告", user.Uid);//给该用户发送系统消息
6 }

 

那具体有哪些函数可以被调用呢?可以看一下IUcClient接口

View Code
  1 using System.Collections.Generic;
  2 
  3 namespace DS.Web.UCenter.Client
  4 {
  5     ///<summary>
  6     /// UcApi客户端
  7     ///</summary>
  8     public interface IUcClient
  9     {
 10         /// <summary>
 11         /// 用户注册
 12         /// </summary>
 13         /// <param name="userName">用户名</param>
 14         /// <param name="passWord">密码</param>
 15         /// <param name="email">Email</param>
 16         /// <param name="questionId">登陆问题</param>
 17         /// <param name="answer">答案</param>
 18         /// <returns></returns>
 19         UcUserRegister UserRegister(string userName, string passWord, string email, int questionId = 0, string answer = "");
 20 
 21         /// <summary>
 22         /// 用户登陆
 23         /// </summary>
 24         /// <param name="userName">用户名/Uid/Email</param>
 25         /// <param name="passWord">密码</param>
 26         /// <param name="loginMethod">登录方式</param>
 27         /// <param name="checkques">需要登陆问题</param>
 28         /// <param name="questionId">问题ID</param>
 29         /// <param name="answer">答案</param>
 30         /// <returns></returns>
 31         UcUserLogin UserLogin(string userName, string passWord, LoginMethod loginMethod = LoginMethod.UserName, bool checkques = false, int questionId = 0, string answer = "");
 32 
 33         /// <summary>
 34         /// 得到用户信息
 35         /// </summary>
 36         /// <param name="userName">用户名</param>
 37         /// <returns></returns>
 38         UcUserInfo UserInfo(string userName);
 39 
 40         /// <summary>
 41         /// 得到用户信息
 42         /// </summary>
 43         /// <param name="uid">Uid</param>
 44         /// <returns></returns>
 45         UcUserInfo UserInfo(int uid);
 46 
 47         /// <summary>
 48         /// 更新用户信息
 49         /// 更新资料需验证用户的原密码是否正确,除非指定 ignoreoldpw 为 1。
 50         /// 如果只修改 Email 不修改密码,可让 newpw 为空;
 51         /// 同理如果只修改密码不修改 Email,可让 email 为空。
 52         /// </summary>
 53         /// <returns></returns>
 54         UcUserEdit UserEdit(string userName, string oldPw, string newPw, string email, bool ignoreOldPw = false, int questionId = 0, string answer = "");
 55 
 56         /// <summary>
 57         /// 删除用户
 58         /// </summary>
 59         /// <param name="uid">Uid</param>
 60         /// <returns></returns>
 61         bool UserDelete(params int[] uid);
 62 
 63         /// <summary>
 64         /// 删除用户头像
 65         /// </summary>
 66         /// <param name="uid">Uid</param>
 67         void UserDeleteAvatar(params int[] uid);
 68 
 69         /// <summary>
 70         /// 同步登陆
 71         /// </summary>
 72         /// <param name="uid">Uid</param>
 73         /// <returns>同步登陆的 Html 代码</returns>
 74         string UserSynlogin(int uid);
 75 
 76         /// <summary>
 77         /// 同步登出
 78         /// </summary>
 79         /// <returns>同步登出的 Html 代码</returns>
 80         string UserSynLogout();
 81 
 82         /// <summary>
 83         /// 检查 Email 格式
 84         /// </summary>
 85         /// <param name="email">Email</param>
 86         /// <returns></returns>
 87         UcUserCheckEmail UserCheckEmail(string email);
 88 
 89         /// <summary>
 90         /// 增加受保护用户
 91         /// </summary>
 92         /// <param name="admin">操作管理员</param>
 93         /// <param name="userName">用户名</param>
 94         /// <returns></returns>
 95         bool UserAddProtected(string admin, params string[] userName);
 96 
 97         /// <summary>
 98         /// 删除受保护用户
 99         /// </summary>
100         /// <param name="admin">操作管理员</param>
101         /// <param name="userName">用户名</param>
102         /// <returns></returns>
103         bool UserDeleteProtected(string admin, params string[] userName);
104 
105         /// <summary>
106         /// 得到受保护用户
107         /// </summary>
108         /// <returns></returns>
109         UcUserProtecteds UserGetProtected();
110 
111         /// <summary>
112         /// 合并用户
113         /// </summary>
114         /// <param name="oldUserName">老用户名</param>
115         /// <param name="newUserName">新用户名</param>
116         /// <param name="uid">Uid</param>
117         /// <param name="passWord">密码</param>
118         /// <param name="email">Email</param>
119         /// <returns></returns>
120         UcUserMerge UserMerge(string oldUserName, string newUserName, int uid, string passWord, string email);
121 
122         /// <summary>
123         /// 移除重名用户记录
124         /// </summary>
125         /// <param name="userName">用户名</param>
126         void UserMergeRemove(string userName);
127 
128         /// <summary>
129         /// 得到用户积分
130         /// </summary>
131         /// <param name="appId">应用程序Id</param>
132         /// <param name="uid">Uid</param>
133         /// <param name="credit">积分编号</param>
134         /// <returns></returns>
135         int UserGetCredit(int appId, int uid, int credit);
136 
137         /// <summary>
138         /// 检查新消息
139         /// </summary>
140         /// <param name="uid">Uid</param>
141         /// <returns></returns>
142         UcPmCheckNew PmCheckNew(int uid);
143 
144         /// <summary>
145         /// 发送短消息
146         /// </summary>
147         /// <param name="fromUid">发件人用户 ID,0 为系统消息</param>
148         /// <param name="replyPmId">回复的消息 ID,0:发送新的短消息,大于 0:回复指定的短消息</param>
149         /// <param name="subject">消息标题</param>
150         /// <param name="message">消息内容</param>
151         /// <param name="msgTo">收件人ID</param>
152         /// <returns></returns>
153         UcPmSend PmSend(int fromUid, int replyPmId, string subject, string message, params int[] msgTo);
154 
155         /// <summary>
156         /// 发送短消息
157         /// </summary>
158         /// <param name="fromUid">发件人用户 ID,0 为系统消息</param>
159         /// <param name="replyPmId">回复的消息 ID,0:发送新的短消息,大于 0:回复指定的短消息</param>
160         /// <param name="subject">消息标题</param>
161         /// <param name="message">消息内容</param>
162         /// <param name="msgTo">收件人用户名</param>
163         /// <returns></returns>
164         UcPmSend PmSend(int fromUid, int replyPmId, string subject, string message, params string[] msgTo);
165 
166         /// <summary>
167         /// 删除短消息
168         /// </summary>
169         /// <param name="uid">Uid</param>
170         /// <param name="folder">文件夹</param>
171         /// <param name="pmIds">短消息ID</param>
172         /// <returns>删除的数量</returns>
173         int PmDelete(int uid, PmDeleteFolder folder, params int[] pmIds);
174 
175         /// <summary>
176         /// 删除会话
177         /// </summary>
178         /// <param name="uid">发件人</param>
179         /// <param name="toUids">收件人</param>
180         /// <returns>删除的数量</returns>
181         int PmDelete(int uid, params int[] toUids);
182 
183         /// <summary>
184         /// 修改阅读状态
185         /// </summary>
186         /// <param name="uid">发件人</param>
187         /// <param name="toUids">收件人</param>
188         /// <param name="pmIds">短消息ID</param>
189         /// <param name="readStatus">阅读状态</param>
190         void PmReadStatus(int uid, int toUids, int pmIds = 0, ReadStatus readStatus = ReadStatus.Readed);
191 
192         /// <summary>
193         /// 修改阅读状态
194         /// </summary>
195         /// <param name="uid">发件人</param>
196         /// <param name="toUids">收件人数组</param>
197         /// <param name="pmIds">短消息ID数组</param>
198         /// <param name="readStatus">阅读状态</param>
199         void PmReadStatus(int uid, IEnumerable<int> toUids, IEnumerable<int> pmIds, ReadStatus readStatus = ReadStatus.Readed);
200 
201         /// <summary>
202         /// 获取短消息列表
203         /// </summary>
204         /// <param name="uid">Uid</param>
205         /// <param name="page">当前页编号,默认值 1</param>
206         /// <param name="pageSize">每页最大条目数,默认值 10</param>
207         /// <param name="folder">短消息所在的文件夹</param>
208         /// <param name="filter">过滤方式</param>
209         /// <param name="msgLen">截取短消息内容文字的长度,0 为不截取,默认值 0</param>
210         /// <returns></returns>
211         UcPmList PmList(int uid, int page = 1, int pageSize = 10, PmReadFolder folder = PmReadFolder.NewBox, PmReadFilter filter = PmReadFilter.NewPm, int msgLen = 0);
212 
213         /// <summary>
214         /// 获取短消息内容
215         /// 本接口函数用于返回指定用户的指定消息 ID 的消息,返回的数据中包含针对这个消息的回复。
216         /// 如果指定 touid 参数,那么短消息将列出所有 uid 和 touid 之间的短消息,daterange 可以指定返回消息的日期范围。
217         /// </summary>
218         /// <param name="uid">Uid</param>
219         /// <param name="pmId">短消息ID</param>
220         /// <param name="toUid">收件人ID</param>
221         /// <param name="dateRange">日期范围</param>
222         /// <returns></returns>
223         UcPmView PmView(int uid, int pmId, int toUid = 0, DateRange dateRange = DateRange.Today);
224 
225         /// <summary>
226         /// 获取单条短消息内容
227         /// </summary>
228         /// <param name="uid">Uid</param>
229         /// <param name="type">类型</param>
230         /// <param name="pmId">短消息ID</param>
231         /// <returns></returns>
232         UcPm PmViewNode(int uid, ViewType type = ViewType.Specified, int pmId = 0);
233 
234         /// <summary>
235         /// 忽略未读消息提示
236         /// </summary>
237         /// <param name="uid">Uid</param>
238         void PmIgnore(int uid);
239 
240         /// <summary>
241         /// 得到黑名单
242         /// </summary>
243         /// <param name="uid">Uid</param>
244         /// <returns></returns>
245         UcPmBlacklsGet PmBlacklsGet(int uid);
246 
247         /// <summary>
248         /// 设置黑名单为禁止所有人(清空原数据)
249         /// </summary>
250         /// <param name="uid">Uid</param>
251         /// <returns></returns>
252         bool PmBlacklsSetAll(int uid);
253 
254         /// <summary>
255         /// 设置黑名单(清空原数据)
256         /// </summary>
257         /// <param name="uid">Uid</param>
258         /// <param name="userName">黑名单用户名</param>
259         /// <returns></returns>
260         bool PmBlacklsSet(int uid, params string[] userName);
261 
262         /// <summary>
263         /// 添加黑名单为禁止所有人
264         /// </summary>
265         /// <param name="uid">Uid</param>
266         /// <returns></returns>
267         bool PmBlacklsAddAll(int uid);
268 
269         /// <summary>
270         /// 增加黑名单
271         /// </summary>
272         /// <param name="uid">Uid</param>
273         /// <param name="userName">黑名单用户名</param>
274         /// <returns></returns>
275         bool PmBlacklsAdd(int uid, params string[] userName);
276 
277         /// <summary>
278         /// 删除黑名单中的禁止所有人
279         /// </summary>
280         /// <param name="uid">Uid</param>
281         /// <returns></returns>
282         void PmBlacklsDeleteAll(int uid);
283 
284         /// <summary>
285         /// 删除黑名单
286         /// </summary>
287         /// <param name="uid">Uid</param>
288         /// <param name="userName">黑名单用户名</param>
289         void PmBlacklsDelete(int uid, params string[] userName);
290 
291         /// <summary>
292         /// 增加好友
293         /// </summary>

294         /// <param name="uid">Uid</param>
295         /// <param name="friendId">好友ID</param>
296         /// <param name="comment">备注</param>
297         /// <returns></returns>
298         bool UcFriendAdd(int uid, int friendId, string comment = "");
299 
300         /// <summary>
301         /// 删除好友
302         /// </summary>
303         /// <param name="uid">Uid</param>
304         /// <param name="friendIds">好友ID</param>
305         /// <returns></returns>
306         bool UcFriendDelete(int uid, params int[] friendIds);
307 
308         /// <summary>
309         /// 获取好友总数
310         /// </summary>
311         /// <param name="uid">Uid</param>
312         /// <param name="direction">方向</param>
313         /// <returns>好友数目</returns>
314         int UcFriendTotalNum(int uid, FriendDirection direction = FriendDirection.All);
315 
316         /// <summary>
317         /// 好友列表
318         /// </summary>
319         /// <param name="uid">Uid</param>
320         /// <param name="page">当前页编号</param>
321         /// <param name="pageSize">每页最大条目数</param>
322         /// <param name="totalNum">好友总数</param>
323         /// <param name="direction">方向</param>
324         /// <returns></returns>
325         UcFriends UcFriendList(int uid, int page = 1, int pageSize = 10, int totalNum = 10, FriendDirection direction = FriendDirection.All);
326 
327         /// <summary>
328         /// 积分兑换请求
329         /// </summary>
330         /// <param name="uid">Uid</param>
331         /// <param name="from">原积分</param>
332         /// <param name="to">目标积分</param>
333         /// <param name="toAppId">目标应用ID</param>
334         /// <param name="amount">积分数额</param>
335         /// <returns></returns>
336         bool UcCreditExchangeRequest(int uid, int from, int to, int toAppId, int amount);
337 
338         ///<summary>
339         /// 修改头像
340         ///</summary>
341         ///<param name="uid">Uid</param>
342         ///<param name="type"></param>
343         ///<returns></returns>
344         string Avatar(int uid, AvatarType type = AvatarType.Virtual);
345 
346         /// <summary>
347         /// 得到头像地址
348         /// </summary>
349         /// <param name="uid">Uid</param>
350         /// <param name="size">大小</param>
351         /// <param name="type">类型</param>
352         /// <returns></returns>
353         string AvatarUrl(int uid,AvatarSize size,AvatarType type = AvatarType.Virtual);
354 
355         /// <summary>
356         /// 检查头像是否存在
357         /// </summary>
358         /// <param name="uid"></param>
359         /// <param name="size"></param>
360         /// <param name="type"></param>
361         /// <returns></returns>
362         bool AvatarCheck(int uid, AvatarSize size = AvatarSize.Middle, AvatarType type = AvatarType.Virtual);
363 
364         /// <summary>
365         /// 获取标签数据
366         /// </summary>
367         /// <param name="tagName">标签名</param>
368         /// <param name="number">应用程序ID对应的数量</param>
369         /// <returns></returns>
370         UcTags TagGet(string tagName, IEnumerable<KeyValuePair<string, string>> number);
371 
372         /// <summary>
373         /// 添加事件
374         /// </summary>
375         /// <param name="icon">图标类型,如:thread、post、video、goods、reward、debate、blog、album、comment、wall、friend</param>
376         /// <param name="uid">Uid</param>
377         /// <param name="userName">用户名</param>
378         /// <param name="titleTemplate">标题模板</param>
379         /// <param name="titleData">标题数据数组</param>
380         /// <param name="bodyTemplate">内容模板</param>
381         /// <param name="bodyData">模板数据</param>
382         /// <param name="bodyGeneral">相同事件合并时用到的数据:特定的数组,只有两项:name、link,保留</param>
383         /// <param name="targetIds">保留</param>
384         /// <param name="images">相关图片的 URL 和链接地址。一个图片地址,一个链接地址</param>
385         /// <returns></returns>
386         int FeedAdd(FeedIcon icon, int uid, string userName, string titleTemplate, string titleData, string bodyTemplate, string bodyData, string bodyGeneral, string targetIds, params string[] images);
387 
388         /// <summary>
389         /// 得到Feed
390         /// </summary>
391         /// <param name="limit">数量限制</param>
392         /// <returns></returns>
393         UcFeeds FeedGet(int limit);
394 
395         /// <summary>
396         /// 得到应用列表
397         /// </summary>
398         /// <returns></returns>
399         UcApps AppList();
400 
401         /// <summary>
402         /// 添加邮件到队列
403         /// </summary>
404         /// <param name="subject">标题</param>
405         /// <param name="message">内容</param>
406         /// <param name="uids">Uid</param>
407         /// <returns></returns>
408         UcMailQueue MailQueue(string subject, string message,params int[] uids);
409 
410         /// <summary>
411         /// 添加邮件到队列
412         /// </summary>
413         /// <param name="subject">标题</param>
414         /// <param name="message">内容</param>
415         /// <param name="emails">目标Email</param>
416         /// <returns></returns>
417         UcMailQueue MailQueue(string subject, string message, params string[] emails);
418 
419         /// <summary>
420         /// 添加邮件到队列
421         /// </summary>
422         /// <param name="subject">标题</param>
423         /// <param name="message">内容</param>
424         /// <param name="uids">Uid</param>
425         /// <param name="emails">目标email</param>
426         /// <returns></returns>
427         UcMailQueue MailQueue(string subject, string message, int[] uids, string[] emails);
428 
429         /// <summary>
430         /// 添加邮件到队列
431         /// </summary>
432         /// <param name="subject">标题</param>
433         /// <param name="message">内容</param>
434         /// <param name="fromMail">发信人,可选参数,默认为空,uc后台设置的邮件来源作为发信人地址</param>
435         /// <param name="charset">邮件字符集,可选参数,默认为gbk</param>
436         /// <param name="htmlOn">是否是html格式的邮件,可选参数,默认为FALSE,即文本邮件</param>
437         /// <param name="level">邮件级别,可选参数,默认为1,数字大的优先发送,取值为0的时候立即发送,邮件不入队列</param>
438         /// <param name="uids">Uid</param>
439         /// <param name="emails">目标email</param>
440         /// <returns></returns>
441         UcMailQueue MailQueue(string subject,string message,string fromMail,string charset,bool htmlOn,int level,int[] uids,string[] emails);
442     }
443 }

这份 API 是根据 UCenter API 开发手册开发的

 

 

所有的API都在里面了,不用考虑实现细节,配置好以后直接调用即可!

 

供 UCenter 调用的接口

这里,我们现在网站下新建一个叫 API 的文件夹(一定要叫 API)

然后再创建一个 ashx 文件(文件名和前面的配置对应即可,上面用的是 uc.ashx ,只要对应即刻,没必要用 uc.php)

 

结构如下:

4.  深入研究 UCenter API 之 网站搭建(转载)

uc.ashx 修改如下:

View Code
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using DS.Web.UCenter.Api;
 6 
 7 namespace DS.Web.UCenter.Website.API
 8 {
 9     /// <summary>
10     /// Summary description for uc
11     /// </summary>
12     public class uc:UcApiBase
13     {
14         public override ApiReturn DeleteUser(IEnumerable<int> ids)
15         {
16             throw new NotImplementedException();
17         }
18 
19         public override ApiReturn RenameUser(int uid, string oldUserName, string newUserName)
20         {
21             throw new NotImplementedException();
22         }
23 
24         public override UcTagReturns GetTag(string tagName)
25         {
26             throw new NotImplementedException();
27         }
28 
29         public override ApiReturn SynLogin(int uid)
30         {
31             throw new NotImplementedException();
32         }
33 
34         public override ApiReturn SynLogout()
35         {
36             throw new NotImplementedException();
37         }
38 
39         public override ApiReturn UpdatePw(string userName, string passWord)
40         {
41             throw new NotImplementedException();
42         }
43 
44         public override ApiReturn UpdateBadWords(UcBadWords badWords)
45         {
46             throw new NotImplementedException();
47         }
48 
49         public override ApiReturn UpdateHosts(UcHosts hosts)
50         {
51             throw new NotImplementedException();
52         }
53 
54         public override ApiReturn UpdateApps(UcApps apps)
55         {
56             throw new NotImplementedException();
57         }
58 
59         public override ApiReturn UpdateClient(UcClientSetting client)
60         {
61             throw new NotImplementedException();
62         }
63 
64         public override ApiReturn UpdateCredit(int uid, int credit, int amount)
65         {
66             throw new NotImplementedException();
67         }
68 
69         public override UcCreditSettingReturns GetCreditSettings()
70         {
71             throw new NotImplementedException();
72         }
73 
74         public override ApiReturn GetCredit(int uid, int credit)
75         {
76             throw new NotImplementedException();
77         }
78 
79         public override ApiReturn UpdateCreditSettings(UcCreditSettings creditSettings)
80         {
81             throw new NotImplementedException();
82         }
83     }
84 }

本来呢,ashx 继承的是 IHttpHandler ,但是呢,我们需要修改一下,让它继承 UcApiBase

它是一个抽象类,重写抽象方法即可。

 

但是具体怎么用呢?

这些函数不是给你调用的,是给 UCenter 调用的,你要做的就是写一些逻辑代码。比如 UCenter 告诉你 有人登陆了 (SynLogin函数)

那你应该做点什么呢? 写 Cookie ?写 Session ? 都行~

同样,当 UCenter 同步登出的时候,你也需要写一些逻辑代码,清理 Cookie 或者 Session

另外几个函数是干嘛的呢? 参考 UCenter 接口开发手册中的 API接口 这个章节即可

 

 

相关文章:

  • 2021-07-30
  • 2021-06-01
  • 2022-03-13
  • 2021-08-27
  • 2022-01-26
  • 2021-12-22
  • 2021-11-11
  • 2021-12-27
猜你喜欢
  • 2021-06-02
  • 2022-02-03
  • 2021-12-20
  • 2021-07-10
  • 2022-12-23
  • 2021-12-05
  • 2021-09-15
相关资源
相似解决方案