主頁 > 知識庫 > asp.net根據(jù)計算機MAC地址限定每臺機子只能領取一次賬號

asp.net根據(jù)計算機MAC地址限定每臺機子只能領取一次賬號

熱門標簽:Linux服務器 科大訊飛語音識別系統(tǒng) 阿里云 Mysql連接數(shù)設置 服務器配置 團購網(wǎng)站 電子圍欄 銀行業(yè)務
下面開始吧:
首先寫一個簡單的前臺代碼:
復制代碼 代碼如下:

%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml" >
head runat="server">
title>無標題頁/title>
/head>
body>
form id="form1" runat="server">
div style="text-align: left">
strong>span style="font-size: 14pt">歡迎光臨愛智旮旯的博客!/span>br />
/strong>span style="font-size: 10pt; color: #ff0000">注:每臺計算機只可以領取一個帳號br />
/span>
asp:Button ID="getNamePass" runat="server" OnClick="getNamePass_Click" Text="領取帳號密碼" />nbsp;br />
asp:Label ID="labName" runat="server">/asp:Label>br />
asp:Label ID="labPass" runat="server">/asp:Label>br />
/div>
/form>
/body>
/html>

再來寫一個后臺代碼,備注已經(jīng)說的比較清楚,這里不多說了!
復制代碼 代碼如下:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
using System.Diagnostics;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
labName.Text = labPass.Text = "";
}
protected void getNamePass_Click(object sender, EventArgs e)
{
//獲取客戶端的IP地址
string IP = Request.UserHostAddress;
//創(chuàng)建字符串變量
string dirResults = "";
//創(chuàng)建ProcessStartInfo對象表示啟動進程時使用的一組值
ProcessStartInfo psi = new ProcessStartInfo();
//創(chuàng)建Process對象使您能夠啟動和停止本地系統(tǒng)進程
Process proc = new Process();
//設置要啟動的應用程序或文檔
psi.FileName = "nbtstat";
//設置不從Process.StandardInput流中讀取輸入
psi.RedirectStandardInput = false;
//設置要輸出寫入 Process.StandardOutput流
psi.RedirectStandardOutput = true;
//設置啟動的應用程序中的一組命令參數(shù)
psi.Arguments = "-A " + IP;
//設置從可執(zhí)行文件創(chuàng)建進程
psi.UseShellExecute = false;
//設置啟動進程
proc = Process.Start(psi);
//獲取StandardOutput輸出流
dirResults = proc.StandardOutput.ReadToEnd();
//設置Process 組件無限期地等待關聯(lián)進程退出
proc.WaitForExit();
//替換掉StandardOutput輸出流中的"/r,/n,/t"
dirResults = dirResults.Replace("\r", "").Replace("\n", "").Replace("\t", "");
//設置正則表達式
Regex reg = new Regex("MAC[ ]{0,}Address[ ]{0,}=[ ]{0,}(?key>((.)*?))MAC", RegexOptions.IgnoreCase | RegexOptions.Compiled);
//向獲取的StandardOutput輸出流添加"MAC"字符串
dirResults = dirResults + "MAC";
//獲取Cookie
HttpCookie oldCookie = Request.Cookies["netCard"];
//獲取正則表達式中的匹配項
Match mc = reg.Match(dirResults);
//獲取網(wǎng)卡號去除掉“-”符合
string networkCard = mc.Groups["key"].Value.Replace("-", "");
//判斷Cookie是否為空
if (oldCookie == null)
{
//判斷是否符合正則表達式的要求
if (mc.Success)
{
//顯示帳號
labName.Text = "您的帳號為:" + networkCard;
//顯示密碼
labPass.Text = "您的密碼為:1234";
//創(chuàng)建Cookie對象
HttpCookie newCookie = new HttpCookie("netCard");
//設置Cookie的有效時間
newCookie.Expires = DateTime.MaxValue;
//添加Cookie中的值
newCookie.Values.Add("numberCard", networkCard);
//將Cookie添加到Cookie集合中
Response.Cookies.Add(newCookie);
}
else
{
RegisterStartupScript("", "script>alert( '您沒有聯(lián)網(wǎng)!');/script>");
}
}
else
{
//獲取Cookie中的網(wǎng)卡號
string numberCard = oldCookie.Values["numberCard"];
//判斷Cookie中的網(wǎng)卡號是否和獲取到的網(wǎng)卡號一致
if (numberCard.Trim() == networkCard.Trim())
{
RegisterStartupScript("", "script>alert('很抱歉!您的計算機已領取過帳號。')/script>");
}
else
{
//判斷是否符合正則表達式的要求
if (mc.Success)
{
//顯示帳號
labName.Text = "您的帳號為:" + networkCard;
//顯示密碼
labPass.Text = "您的密碼為:1234";
//修改Cookie中的值
oldCookie.Values.Set("numberCard", networkCard);
//將Cookie添加到Cookie集合中
Response.Cookies.Add(oldCookie);
}
else
{
RegisterStartupScript("", "script>alert( '您沒有聯(lián)網(wǎng)!');/script>");
}
}
}
}
}
您可能感興趣的文章:
  • ASP.NET MVC5驗證系列之服務端驗證
  • ASP.NET MVC+EF在服務端分頁使用jqGrid以及jquery Datatables的注意事項
  • ASP.NET獲取真正的客戶端IP地址的6種方法
  • asp.net 從客戶端中檢測到有潛在危險的 Request.Form 值錯誤解
  • asp.net(C#)中給控件添加客戶端js事件的方法
  • asp.net 客戶端瀏覽器緩存的Http頭介紹
  • 設置ASP.NET頁面不被緩存(客戶端/服務器端取消緩存方法)
  • ASP.net中獲取客戶端參數(shù)操作系統(tǒng)信息
  • asp.net實現(xiàn)獲取客戶端詳細信息
  • ASP.NET簡單獲取服務端和客戶端計算機名稱的方法

標簽:衡水 蚌埠 大理 江蘇 棗莊 萍鄉(xiāng) 衢州 廣元

巨人網(wǎng)絡通訊聲明:本文標題《asp.net根據(jù)計算機MAC地址限定每臺機子只能領取一次賬號》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266