在网上看到的很多实现的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. Golang_互斥锁

    为什么需要锁? 在并发的情况下,多个线程或协程同时去修改一个变量.使用锁能保证在某一时间点内,只有一个协程或线程修改这一变量. 锁的概念就是,我正在处理 a(锁定),你们等着,等我处理完了(解锁),你 ...

  2. mybatis内置参数及foreach使用

  3. 面试6 --- 当List<String> list =new ArrayList<String>(20); 他会扩容多少次

    当List<String> list =new ArrayList<String>(20); 他会扩容多少次?A 0       B 1 C 2 D 3答案是A: 因为这个集合 ...

  4. Codechef TSUM2 Sum on Tree 点分治、李超线段树

    传送门 点分治模板题都不会迟早要完 发现这道题需要统计所有路径的信息,考虑点分治统计路径信息. 点分治之后,因为路径是有向的,所以对于每一条路径都有向上和向下的两种.那么如果一条向上的路径,点数为\( ...

  5. 方法1:使用Jenkins构建Docker镜像 --SpringCloud

    前提意义: SpringCloud微服务里包含多个文件夹,拉取仓库的所有代码,然后过根据选项参数使用maven编译打包指定目录的jar,然后再根据这个目录的Dockerfile文件制作Docker镜像 ...

  6. Python接口自动化基础---cookie绕过登录

    使用fiddler获取登录cookie 对比登录前和登录后的cookis 登录前 登录后: 获得cookie之后,使用cookie访问,就可以获取登录态: import requests url='h ...

  7. docker-compose的一些服务一直是restarting

    1.查看日志 docker logs jenkins(镜像名字) 1.1 可能权限问题 1.2可能内存问题

  8. TR-业务流程图

    今天看到一篇关于票据业务的培训文档,介绍比较全面,分享下: https://wenku.baidu.com/view/f3dd3ee988eb172ded630b1c59eef8c75ebf9577. ...

  9. 模块之 time datetime random json pickle os sys hashlib collections

    目录 1. time模块 1.1表示时间的几种方式: 1.2格式化字符串的时间格式 1.3不同格式时间的转换 2.datetim模块 3.random模块 4. json模块 4.1dumps.loa ...

  10. flutter入门开发的一些坑

    flutter入门开发的一些坑 很久没写博客了,最近在准备物联网比赛,顺便抽出时间学习了一下flutter,花了近2周完成了一个查看博客博文的一个小的APPdemo,随便截了两张图,如下: 首页 博客 ...