NSDP与CMCC不同,NSDP是一套轻量的PORTAL服务器解决方案。PORTAL服务器完全是一台标准的WEB服务器。因此,本例子程序使用 PHP来演示。下面是index.php 的源码,整套PORTAL只有两个文件,一个是PHP的首页,一个是为了支持异步提交的js代码。两个文件都在附件中。

<!DOCTYPE html>
<html>
<head>
<title>NSDP 协议演示PORTAL页面</title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<script src="jquery-1.7.2.js"></script>
<script type="text/javascript">
$(function(){
        $('#go').click(function(){
                var name=$('#username').val();
                varpwd=$('#userpasswd').val();
                      
                var search =location.search;
                if(search.indexOf("?") !=-1) {
                       var query = search.substring(search.indexOf("?")+1);
                       var datas=query+"&"+"username=" + name +"&" + "userpasswd=" + pwd;
                } else{
                       var datas="username=" + name + "&" +"userpasswd=" + pwd;
                }
                $.ajax({
                   type:"POST",
                   url:"http://<?php echo $_GET['wlanapip'];?>:14150/action/auth",
                   data:datas,
                   dataType:"json",
                   success:function(msg){
                          alert(msg);
                               var code = msg.code;
                               code = code*1;
                               switch (code) {
                                       case 0 :
                                              msg = "认证成功";break;
                                       case 1 :
                                              msg = "用户名或密码错误";break;
                                       case 2 :
                                              msg = "认证超时";break;
                                       case 3 :
                                              msg = "用户正在认证中";break;
                                       case4  :
                                              msg = "用户已认证";break;
                                       default :
                                              msg = "未知返回码!";break;
                               }
                               alert(msg);
                   }
                });
        });
});

</script>

</head>
<body>
       <div  style="width:100px;margin-left:35%;margin-right:auto;margin-top:15%">
                <fieldset border:2pxstyle="width:300px;hight:auto;border-color:#0000CD">
                       <legend>用户登录</legend>
                               账&nbsp;&nbsp;号&nbsp;&nbsp;<input type="text"id="username" name="username" maxlength="18"autofocus required />  <br />
                               密&nbsp;&nbsp;码&nbsp;&nbsp;<input type="password"id="userpasswd" name="userpasswd" maxlength="18"required style="margin-top:5px" />  <br />
                               <button type="button"id="go"style="width:60px;hight:30px;margin-top:10px;margin-left:150px;">登& amp;nbsp;录</button>
                </fieldset>
        </div>
</body>
</html>

可以看出,NSDP简化到只有一个页面的程度,而功能却一点也不弱。客户端提交了请求后,分布式的AP认证前端会返回一段JSON,格式如下:
    {

“ver”:“string”,

“sessid”:”int32”,

“code”:“int32”,

“msg”:“string”,

“username”: [

{“User-Name”:“string”},                    // 用户名

{“Session-Timeout”:“u_int32_t”},  // 剩余在线时长

{ “Framed-IP-Address”:“string”},

{“NAS-IP-Address”:“string”},

……

}

Code 字段说明:

Code = 0 ,表示认证成功,携带username属性。

Code = 1 ,表示用户名或密码错误;

Code = 2 ,表示认证超时;

Code = 3 ,表示用户正在认证中;

Code = 4 ,表示用户已认证;

在HTTP认证的时候,如果HTTP认证服务器有异常(返回码不是200),则Code字段返回HTTP返回码。

这样的“跨域提交”模式,也为APP的支持奠定了良好的基础。APP可以直接向AP发起认证!这极大的简化了APP认证的流程。

NSDP协议Portal服务器源码文件请在OSSH论坛下载。

关键词:NSDP、OSSH

NSDP协议PORTAL服务器源码相关推荐

  1. 采集网站服务器配置,搭建数据采集云服务器源码

    搭建数据采集云服务器源码 内容精选 换一换 云速建站暂不支持自主搭建代码,您可以考虑通过添加高级代码插件实现相关功能.云速建站是一套基于SaaS模式的建站系统,使用的是云服务平台,不止是一台服务器,一 ...

  2. lua文件服务器,lua游戏服务器源码

    lua游戏服务器源码 内容精选 换一换 简要介绍Lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能.语言:C一 ...

  3. Go HTTP服务器源码浅析

    简单服务器 Demo 在 Go 编写一个服务器非常简单: func main() {http.HandleFunc("/", func(writer http.ResponseWr ...

  4. 网络NTP协议时间校对源码

    从科锐培训中断回来,好几个月都没写过博客,以后像在武汉这样学习的日子大概不会有了.最近三个月换了两份工作,也够折腾,期间有想过重回科锐的念头,种种原因最后放弃了. 写这个NTP校时的程序,起因是家里旧 ...

  5. netty 游戏服务器 项目,netty游戏服务器源码

    netty游戏服务器源码 内容精选 换一换 简要介绍KBEngine是一款开源的游戏服务端引擎,使用简单的约定协议就能够使客户端与服务端进行交互, 使用KBEngine插件能够快速与(Unity3D. ...

  6. SRS流媒体服务器源码分析(一):Rtmp publish流程

    1.线程模型 srs使用了state-threads协程库,是单线程多协程模型. 这个协程的概念类似于lua的协程,都是单线程中可以创建多个协程.而golang中的goroutine协程是多线程并发的 ...

  7. SRS(simple-rtmp-server)流媒体服务器源码分析--启动

    SRS(simple-rtmp-server)流媒体服务器源码分析--系统启动 一.前言 小卒最近看SRS源码,随手写下博客,其一为了整理思路,其二也是为日后翻看方便.如果不足之处,请指教! 首先总结 ...

  8. python 传奇服务端_传奇游戏服务器源码学习

    依据传奇游戏服务器源码总结了一下服务器开发中比较关心的一些问题. (1)线程之间的共享数据如何同步 CIntLock封装了临界区管理,包含了Lock()和Unlock()两个操作函数,所有 需要同步的 ...

  9. 调用ycwin.cpp接口的YC服务器源码ycs.js

    YC_window("water.jpg") //设置主函数为 WinMain(),图象water.jpg为程序图标 pwin = YC_cppLoad("ycwin.c ...

最新文章

  1. 万字干货介绍WebAR的实现与应用
  2. 土豆上的小霉菌引发百万人死亡和逃难,却造就全球7千万后裔
  3. 年轻人的第一只机器狗,只要1.6万
  4. seo策略从5方面下手
  5. 成功解决The scripts freeze_graph.exe, saved_model_cli.exe, tensorboard.exe, tflite_convert.exe, toco.exe
  6. Java 函数式编程入门
  7. DateOnly和TimeOnly类型居然不能序列化!!! .Net 6下实现自定义JSON序列化
  8. 转: 记录centos7 安装erlang22.3和rabbitMQ
  9. php session 保存数组,php - 我用ajax设置的SESSION数组变量没有被保存?
  10. java 多态与重载的区别_java实现多态 方法的重写和重载的区别
  11. Jmeter+ForEach控制器+BeanShell取样器+BeanShell PostProcessor爬取网站信息储存csv
  12. MSP借助五招让中小企业签约云计算服务
  13. 为什么有人不喜欢标准成本
  14. Android状态页切换(数据加载中,数据加载失败,空数据)
  15. 小米4c android5.1,奇兔刷机全网独家攻破小米4c安卓5.1支持一键刷机ROOT
  16. WebView加载失败或网络异常时,替换WebView的错误界面;
  17. Haar特征和级联分类器目标检测介绍及应用
  18. hadoop101: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
  19. php微信公众号向指定客服发信息,微信公众号给用户发送一条消息 客服消息
  20. 厂房规划物流仿真之sketchUP(SU)

热门文章

  1. python大数据工程师需要掌握哪些_大数据工程师 python
  2. evernote国际版不可用
  3. Win10应用卸载(针对控制面板的卸载程序页面找不到的那些应用)
  4. SMP,UMA,NUMA,MPP的概念理解
  5. 传递函数化为状态空间表达式
  6. 过滤器(Filter)的实现方式
  7. 错过了前三次的伟大革命(蒸汽机革命、电气革命、信息革命),GPT-4 你还要错过人工智能AI革命吗!!!
  8. 论文精读: MapReduce
  9. 标签类目体系(面向业务的数据资产设计方法论)-读书笔记2
  10. 阿里张建锋:互联网主要解决三大问题