NSDP协议PORTAL服务器源码

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

时间: 2024-10-22 04:44:58

NSDP协议PORTAL服务器源码的相关文章

CSAPP Tiny web 服务器源码分析及搭建运行

1. Web基础 web客户端和服务器之间的交互使用的是一个基于文本的应用级协议HTTP(超文本传输协议).一个web客户端(即浏览器)打开一个到服务器的因特网连接,并且请求某些内容.服务器响应所请求的内容,然后关闭连接.浏览器读取这些内容,并把它显示在屏幕上. 对于web客户端和服务器而言,内容是与一个MIME类型相关的字节序列.常见的MIME类型: MIME类型 描述 text/html HTML页面 text/plain 无格式文本 image/gif GIF格式编码的二进制图像 imag

轻量级通信引擎StriveEngine —— C/S通信demo(2) —— 使用二进制协议 (附源码)

在网络上,交互的双方基于TCP或UDP进行通信,通信协议的格式通常分为两类:文本消息.二进制消息. 文本协议相对简单,通常使用一个特殊的标记符作为一个消息的结束. 二进制协议,通常是由消息头(Header)和消息体(Body)构成的,消息头的长度固定,而且,通过解析消息头,可以知道消息体的长度.如此,我们便可以从网络流中解析出一个个完整的二进制消息. 两种类型的协议格式各有优劣:文本协议直观.容易理解,但是在文本消息中很难嵌入二进制数据,比如嵌入一张图片:而二进制协议的优缺点刚刚相反. 在 轻量

基于XMPP协议的aSmack源码分析

在研究如何实现Pushing功能期间,收集了很多关于Pushing的资料,其中有一个androidnp开源项目用的人比较多,但是由于长时间没有什么人去维护,听说bug的几率挺多的,为了以后自己的产品稳定些,所以就打算自己研究一下asmack的源码,自己做一个插件,androidnp移动端的源码中包含了一个叫做asmack的jar. Reader和Writer 在asmack中有两个非常重要的对象PacketReader和PacketWriter,那么从类名上看Packet + (Reader/W

数据库异常sysservers中找不到服务器 源码下载

本文引用于:征途源码论坛(www.zhengtuwl.com)-----专注各类免费精品源码下载的平台 数据库异常:[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问. 网狐架设很多人第一架设肯定要遇到这个问题,网上找教程,也没有提到这个的,这里我来写解决方法,免得再有人问我了!本站是不提供技术服务的,在QQ上问我问题我是直接忽略的,有问题发布到论坛,只要是我知道的我就一定帮助解决,不要再QQ上问我了!开始->所有程序->Mic

samba服务器源码安装(非rpm)

首先我们创建一个文档,边安装配置samba,边写教程. 从www.samba.org下载samba最新源码包,我下载的是samba-3.0.7.tar.gz,把它放在我的目录的中/root/lova/samba下. tar -zxvf samba-3.0.7.tar.gz 解压得到samba-3.0-7 cd samba-3.0.7 cat README 先看说明,可惜E文太差,不太懂,直接安装吧. find . -name configure ./source/configure 原来藏在这

tinyhttpd服务器源码学习

下载地址:http://sourceforge.net/projects/tinyhttpd/ /* J. David's webserver */ /* This is a simple webserver. * Created November 1999 by J. David Blackstone. * CSE 4344 (Network concepts), Prof. Zeigler * University of Texas at Arlington */ /* This progr

python之epoll服务器源码分析

#!/usr/bin/env python # -*- coding: utf8 -*- import socket, select EOL1 = b'/r/n' EOL2 = b'/r/n/r/n' # 拼接成的response response = b'HTTP/1.0 200 OK/r/nDate: Mon, 1 Jan 1996 01:01:01 GMT/r/n' response += b'Content-Type: text/plain/r/nContent-Length: 13/r

epoll 回显服务器源码

在写epoll回显服务器代码之前,可以先看看上一篇文章:select poll epoll三者之间的比较.最近在继续学习网络编程中的服务端编程中,了解到很多网游服务器是在IOMP(IO完成端口)框架下写的,但是这种方式只能在 Windows 下使用,奇了怪了,这么好的东西为什么不在Linux下也实现一套呢?这个问题我继续学习IOMP再来谈一谈! epoll是linux下高并发服务器的完美方案,因为是基于事件触发的,所以比select快的不只是一个数量级.单线程epoll,触发量可达到15000,

C# web服务器 源码,无需IIS环境,针对ajax处理

一个c#写的的web服务器,只进行简单的处理HTTP请求,第一次写,功能比较简单,比较适合做API服务器 因为是类的方式,可以嵌入任何程序中 代码 using System;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading; namespace Web{ class HTTPServer { private const int BufferSize = 4096; private