bgvf 发表于 2015-10-1 10:36:04

asp.net MVC 使用wifidog 协议实现wifi认证

  在网上看到的很多实现的wifidog 协议一般都是PHP 的,了解一下PHP 但是比较喜欢.net ,所以实现了简单的一个进行登录认证的功能
  (好多协议中的功能目前没有实现)
  
  1. 开发环境(vs2010 )
  2. 路由(支持wifidog协议的 ddwrt )
  3. 环境的配置
  主要是进行路由的配置
  截图如下:

  

  
  注意红圈的部分这个我按照php 的配置
  asp.net MVC 的配置如下:
  
  端口 9999authserver 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();
      }
    }
  代码写的比较乱,但是还是比较简单的。
  loginview 的代码如下:
  <%
      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
  以上只是简单的测试,实际应用需要很多的东西。
  
页: [1]
查看完整版本: asp.net MVC 使用wifidog 协议实现wifi认证