zoukankan      html  css  js  c++  java
  • asp.net MVC 使用wifidog 协议实现wifi认证

    在网上看到的很多实现的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

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

  • 相关阅读:
    Huffman树与编码
    Python引用复制,参数传递,弱引用与垃圾回收
    Git使用说明
    numpy使用指南
    Python Socket
    温故知新之 数据库的事务、隔离级别、锁
    Oracle数据库的语句级读一致性
    VirtualBox NAT方式与主机互相通信
    Linux的定时任务
    Redis学习
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/3947199.html
Copyright © 2011-2022 走看看