在网上看到的很多实现的wifidog 协议一般都是PHP 的,了解一下PHP 但是比较喜欢.net ,所以实现了简单的一个进行登录认证的功能

(好多协议中的功能目前没有实现)

1. 开发环境(vs2010 )

2. 路由(支持wifidog协议的 ddwrt )

3. 环境的配置

主要是进行路由的配置

截图如下:

注意红圈的部分这个我按照php 的配置

asp.net MVC 的配置如下:

端口 9999  authserver path  /login/

4. MVC 项目布局:

loginController.cs 代码如下:

public class loginController : Controller
{
//
// GET: /login/

public ActionResult login()
{
string demo = Request.QueryString.ToString();
ViewData["demo"]=demo;
ViewData["gw_address"] = Request.QueryString["gw_address"];
ViewData["gw_port"] = Request.QueryString["gw_port"];
ViewData["gw_id"] = Request.QueryString["gw_id"];
//ViewData["url"]=Request.QueryString["url"];
string url = Request.QueryString["url"];
// string url = "www.cnblogs.com";

ViewData["url"] = url;
Response.Write("Auth:1");
return View();
}

public ActionResult index()
{
return View();
}

public ActionResult auth()
{
// result data = new result();

Response.Write("Auth:1");
return View();

}
public ActionResult MyLogin()
{

return View();
}
}

代码写的比较乱,但是还是比较简单的。

login  view 的代码如下:

<%
Label1.Text = ViewData["demo"].ToString() + "<br/>" ;

if (ViewData["url"] == null)
{

}
else
{
string a = ViewData["gw_address"].ToString();
string p = ViewData["gw_port"].ToString();
string token = Guid.NewGuid().ToString();
string url=ViewData["url"].ToString();
string demo = "http://" + a + ":" + p + "/wifidog/auth?token=" + token + "url=" + url;

ViewData["authurl"] = demo;
Application["authurl"] = demo;
}

%>

dalong demo app
</h2>
<p>

<h1>
登陆页面
</h1>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</p>

[ <%: Html.ActionLink("进入", "MyLogin", "login")%> ]

Mylogin view 的代码如下:

<%

string tepdemo = "Auth: 1";
byte[] data = System.Text.Encoding.Default.GetBytes(tepdemo);
char[] list = System.Text.Encoding.Default.GetChars(data);
Response.Write(list, 0, list.Length);
Response.Redirect(Application["authurl"].ToString());
%>

5. 手机端的测试效果:

window phone 连接wifi 的显示界面

点击进入如下效果:

连接成功标志:

打开网页:

其中对于认证最重要的是按照协议返回的数据:

比如我通过返回的数据:

Auth: 1

拒绝为: Auth: 0

以上只是简单的测试,实际应用需要很多的东西。

asp.net MVC 使用wifidog 协议实现wifi认证的更多相关文章

  1. (转)Asp.Net MVC中身份认证和授权

    MVC自带的ActionFilter 在Asp.Net WebForm的中要做到身份认证微软为我们提供了三种方式,其中最常用的就是我们的Form认证,需要配置相应的信息.例如下面的配置信息: < ...

  2. Asp.net mvc验证用户登录之Forms实现

    这里我们采用asp.net mvc 自带的AuthorizeAttribute过滤器验证用户的身份,也可以使用自定义过滤器,步骤都是一样. 第一步:创建asp.net mvc项目, 在项目的App_S ...

  3. ASP.NET安全[开发ASP.NET MVC应用程序时值得注意的安全问题](转)

    概述 安全在web领域是一个永远都不会过时的话题,今天我们就来看一看一些在开发ASP.NET MVC应用程序时一些值得我们注意的安全问题.本篇主要包括以下几个内容 : 认证 授权 XSS跨站脚本攻击 ...

  4. (转)asp.net mvc 开发环境下需要注意的安全问题(一)

    概述 安全在web领域是一个永远都不会过时的话题,今天我们就来看一看一些在开发ASP.NET MVC应用程序时一些值得我们注意的安全问题.本篇主要包括以下几个内容 : 认证 授权 XSS跨站脚本攻击 ...

  5. 让Asp.net mvc WebAPI 支持OData协议进行分页查询操作

    这是我在用Asp.net mvc WebAPI 支持 OData协议 做分页查询服务时的 个人拙笔. 代码已经开发到oschina上.有兴趣的朋友可以看看,欢迎大家指出不足之处. 看过了园子里的几篇关 ...

  6. http协议 put、delete请求asp.net mvc应用,报404错误

    http协议 put.delete请求asp.net mvc应用,报404错误 更改web.config,在<modules>节点中设置 runAllManagedModulesForAl ...

  7. ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目

    ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)   我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...

  8. 一百元的智能家居——Asp.Net Mvc Api+讯飞语音+Android+Arduino

    大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...

  9. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

随机推荐

  1. Centos 7系统在线安装docker

    在线安装docker 以下操作步骤均在root用户下操作 1. 检查内核是否符合要求 Docker 要求 Centos系统的内核版本高于 3.10 ,建议在Centos 7版本命令如下: uname ...

  2. @PostConstruct使用总结

    https://blog.csdn.net/qq_37636695/article/details/84791468 https://www.jianshu.com/p/aba99a49a459 @P ...

  3. jmeter中assertion的使用

    用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致. 最新版本的3.0jmeter中有13种不同的断言: 1)BeanShell断言:针对sampler中的Bean ...

  4. mtd交叉编译mkfs命令

    下载 mtd:ftp://ftp.infradead.org/pub/mtd-utils/ zlib:http://www.zlib.net/ lzo:http://bouchez.info/lzo. ...

  5. Android应用通过JDBC直连阿里云MySQL数据库

    1.设置白名单,获取外网连接地址 外部设备要访问阿里云MySQL数据库,则需要设置白名单,具体操作链接: https://help.aliyun.com/document_detail/43185.h ...

  6. linux设备模型与内核中的面向对象思想

    linux内核用C语言实现了C++面向对象的大部分特性:封装,继承,多态.在看内核的过程中,开始追寻其中的设计思想,封装.继承.多态.恰好今天又在看Linux设备模型,找了很多资料.总结如下: 1.l ...

  7. git学习记录--标签随笔

    创建标签: 命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id: git tag -a <tagname> -m "b ...

  8. python之文件的相关操作

    一..文件操作的函数 open("文件名(路径)" ,mode = "模式" , encoding="字符集") 注:文件路径: (1)绝对 ...

  9. JavaScript类型转换总结与常见情况解析

    类型转换是将值从一种类型转换为另一种类型的过程(比如字符串转数字,对象转布尔值等) 一.类型转换的分类 类型转换可以分为隐式类型转换和显式类型转换. 二者的区别显而易见:我们能够从代码中看出哪些地方是 ...

  10. 剑指offer:二维数组的查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...