以前用的是asp,在判断登陆的时候,用一个#include就可以了,.net里面也许能用,但是我不想再用。
刚才我google,baidu了一个,没有找到满意的答案。我手头也有几个从网上下载的.net程序,有一款易想商城的,
跟我要做的网站功能比较像,我看了一下它的程序,是用的用户控件来实现的。我也想像那样子做,发现不能实现我要的功能,
哪位帮我看一下,我要实现下面的功能,应该怎么做,谢谢。(分不够可以再加^_^)
下面是我要实现的功能(我都写在page_load里面的:protected void Page_Load(object sender, EventArgs e)
{
if (Request.Cookies["vipid"] == null || Request.Cookies["vipid"].Value.ToString() == "")
{
Response.Write("<script>alert('请选登陆再访问本页'); location.href='../login.aspx';</script>");
}
}
//从数据库中读取一些数据,用来设置用户权限,具体怎么读我就不写那么详细了,只是得出一些要用到的数据
string zh_user=ds.Tables[tablename].Rows[0][columname].ToString();
.........N个string数据(N≌10)..........................................在前台调用的时候,我没有带参数,不会是这个原因导致的吧?
<%@ Register Src="chkuser.ascx" TagName="chkuser" TagPrefix="uc1" %>
<html .....>
.......
<body>
<uc1:chkuser ID="Chkuser1" runat="server" />
.........
</html>
如果用用户控件的话,该如何写呢?如果不用用户控件的话,又该如何做呢?我把那个控件放在<html>标记前也没有用。
下面的是那个易想商城的代码,有需要的人可以看看。我贴一点:public partial class Admin_YX_CheckLogin : System.Web.UI.UserControl
{
int Column = 1;
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (Session["YX_Admin"] == null)
{
Response.Write("<script>alert('你没有权限查看,请联系管理员');history.go(-1);</script>");
Response.End(); }
else if (Session["YX_Diction"] != null)
{ string[] diction = (string[])Session["YX_Diction"];
int tcolumn = Column - 1;
if (diction[tcolumn].ToString() == "0")
{
Response.Write("<script>alert('你没有权限查看,请联系管理员');history.go(-1);</script>");
Response.End();
} }
}
catch {
Response.Redirect("~/Admin/index.aspx");
}
}
public int _Column { set { Column = value;
}
}
}它前台的调用:
<%@ Register TagPrefix="ChangeHope" TagName="Chklogin" Src="~/Admin/YX_CheckLogin.ascx" %>
<ChangeHope:Chklogin _Column="1" ID="chk1" runat="server" />
代码写在<html>标记前的
刚才我google,baidu了一个,没有找到满意的答案。我手头也有几个从网上下载的.net程序,有一款易想商城的,
跟我要做的网站功能比较像,我看了一下它的程序,是用的用户控件来实现的。我也想像那样子做,发现不能实现我要的功能,
哪位帮我看一下,我要实现下面的功能,应该怎么做,谢谢。(分不够可以再加^_^)
下面是我要实现的功能(我都写在page_load里面的:protected void Page_Load(object sender, EventArgs e)
{
if (Request.Cookies["vipid"] == null || Request.Cookies["vipid"].Value.ToString() == "")
{
Response.Write("<script>alert('请选登陆再访问本页'); location.href='../login.aspx';</script>");
}
}
//从数据库中读取一些数据,用来设置用户权限,具体怎么读我就不写那么详细了,只是得出一些要用到的数据
string zh_user=ds.Tables[tablename].Rows[0][columname].ToString();
.........N个string数据(N≌10)..........................................在前台调用的时候,我没有带参数,不会是这个原因导致的吧?
<%@ Register Src="chkuser.ascx" TagName="chkuser" TagPrefix="uc1" %>
<html .....>
.......
<body>
<uc1:chkuser ID="Chkuser1" runat="server" />
.........
</html>
如果用用户控件的话,该如何写呢?如果不用用户控件的话,又该如何做呢?我把那个控件放在<html>标记前也没有用。
下面的是那个易想商城的代码,有需要的人可以看看。我贴一点:public partial class Admin_YX_CheckLogin : System.Web.UI.UserControl
{
int Column = 1;
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (Session["YX_Admin"] == null)
{
Response.Write("<script>alert('你没有权限查看,请联系管理员');history.go(-1);</script>");
Response.End(); }
else if (Session["YX_Diction"] != null)
{ string[] diction = (string[])Session["YX_Diction"];
int tcolumn = Column - 1;
if (diction[tcolumn].ToString() == "0")
{
Response.Write("<script>alert('你没有权限查看,请联系管理员');history.go(-1);</script>");
Response.End();
} }
}
catch {
Response.Redirect("~/Admin/index.aspx");
}
}
public int _Column { set { Column = value;
}
}
}它前台的调用:
<%@ Register TagPrefix="ChangeHope" TagName="Chklogin" Src="~/Admin/YX_CheckLogin.ascx" %>
<ChangeHope:Chklogin _Column="1" ID="chk1" runat="server" />
代码写在<html>标记前的
格式如下
<!--#include file="Inc/Bottom.aspx"-->
{
if (Request.Cookies["vipid"] == null || Request.Cookies["vipid"].Value.ToString() == "")
{
Response.Write("<script>alert('请选登陆再访问本页'); location.href='../login.aspx';</script>");
}
//后面还有一些其它的公用的东西
}然后在我要验证的页面中拖入这个用户控件,但是发现没有实现我想要的效果,情况就这样。大家告诉我要怎么实现,或者说说你自己是怎么实现的,千万不要告诉我,你在每个页面都写这些验证代码。*_*
class BasePage:Page
{
protected void VerifyCookies()
{
if (Request.Cookies["vipid"] == null || Request.Cookies["vipid"].Value.ToString() == "")
{
Response.Write("<script>alert('请选登陆再访问本页'); location.href='../login.aspx';</script>");
}
}
}
所有需要验证的aspx页面从这个页面集成:
class Default:BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
VerifyCookies();
}
}
下面是我的操作,我想,因为多个页面要调用它,所以我把它放在app_code 里面。
一般的aspx文件的cs里面都有这句:public partial class vip_test : System.Web.UI.Page
所有需要验证的aspx页面从这个页面集成:这句的意思是将后面的System.Web.UI.Page换成basepage还是在public partial class vip_test : System.Web.UI.Page这个的大括弧外再写一个呢?