您的位置:首页 > 其它

取客户端IP和MAC地址进行权限验证的一套体系

2009-12-03 17:16 239 查看
一:前台页面

<title>销量分析</title>
<!-- #Include virtual="/sales_manager/system/IpMacDns.htm" -->
</head>
<body>
<form id="form1" runat="server">
<input value="" name="txtMACAddr" id="txtMACAddr" runat="server" style="display:none" >
<input value="" name="txtIPAddr" id="txtIPAddr" runat="server" style="display:none">
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" style="display:none" />
<input id="Hidden1" runat="server" type="hidden" />

#Include 是包含文件IpMacDns.htm,IpMacDns.htm的内容是:

<object id="locator" classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" VIEWASTEXT></object>
<object id="foo" classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223"></object>
<script type="text/javascript" language="javascript">
var service = locator.ConnectServer();
var MACAddr ;
var IPAddr ;
var DomainAddr;
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</script>
<script type="text/javascript" language="javascript" event="OnObjectReady(objObject,objAsyncContext)" for="foo">
if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
{
if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
MACAddr = objObject.MACAddress;
if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
IPAddr = objObject.IPAddress(0);
}
</script>

<script type="text/javascript" language="javascript" event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for="foo">

document.forms[0].txtMACAddr.value=unescape(MACAddr);
document.forms[0].txtIPAddr.value=unescape(IPAddr);
if (document.getElementById ("Hidden1").value !="第二次")
{
document.getElementById ("Button1").click ();
}
</script>

二:后台代码

public partial class sale_data_manager_sale_count_analyes :page_base
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.Hidden1.Value = "第一次";
}
}
protected void Button1_Click(object sender, EventArgs e)
{
this.Hidden1.Value = "第二次";
func_right_check("WEB_xinfei_ice_func_sale_count_analye", 1018, this.txtIPAddr.Value, this.txtMACAddr.Value);

}


三:page_base类

//检查权限
public void   func_right_check(string func_code,int module_id,string user_ip,string user_mac)
{
DataTable dt = SystemManager.func_right_check(oper_user_id, func_code, module_id, user_ip, user_mac, "系统测试导入");

if (dt.Rows[0]["return_flag"].ToString() != "0")
{
Response.Write("<mce:script type="text/javascript"><!--
window.alert('" + dt.Rows[0]["error_content"].ToString() + "')
// --></mce:script>");
Response.Redirect("~/system/error.htm");
}

}


总体来说就是前台调用后台验证权限的方法,用hidden是为了避免调用click方法时页面提交,导致页面重新加载,无限循环调用验证方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐