当前页面的http请求

    这个是在vs2005以上版本中实现的,因为需要利用配置文件传(存)值。并且这里说的,可以为购物车项目服务

   

   

1:web.configmode="Windows"时,说明是window登陆,获取当前用户信息:

System.web.HttpContext context=system.web.HttpContext.Current;当前请求上下文

This.Lable1.text=context.user.Indentity.Name;//获取当前上下文用户名称

注:一般就是:计算机名/adminstrator

 

 

2:web.configmode="form"时,说明登陆模式是form形式,那么获取当前用户时有一个问题:form模式登陆的用户名是在程序运行时产生的一个用户名,form模式的用户名是保存cookies中的信息。

 

下面我们用一个实验演示:

 

首先在web.config中定义mode=form,并且定义:<forms name="nn" defaultUrl="login.aspx"></forms>

login.aspx页面中, ,在登录按钮中写:

if (this.TextBox1.Text == "wang" && this.TextBox2.Text == "123")

            {

                System.Web.Security.FormsAuthentication.SetAuthCookie(this.TextBox1.Text, false);//cookies赋值

 

                Response.Redirect("Default.aspx");

            }

Default.aspx页面中的Page_Load中,

System.Web.HttpContext context = System.Web.HttpContext.Current; //当前HTTP请求上下文

        this.lblUserName.Text = context.User.Identity.Name;  //获取当前上下文用户名称。

 

 

在这里,为大家介绍一下,在购物车中,如何利用这些原理来统计或判断当前用户是否登录,进而为不同用户设置不同的样式:

 

  定义一个方法:GetShoppingCartID(),在其中写入:

    /****************如果用户登录了,那么他的购物车编号就是他的会员编号***********************/

           //如果用户登录了,我们在登录的时候,将用户的编号查出来,然后将它写入Forms验证的Cookies中。

           System.Web.HttpContext context = System.Web.HttpContext.Current;

           if (context.User.Identity.Name != "")
           {//当前上下文的标示不为空,说明用户已经登录
               return context.User.Identity.Name;//实际上name的值就是用户登录时写入cookies的值
 
           }

           //----------------如果用户没有登录,就会产生一个随机的购物车编号--------------------------

           if (context.Request.Cookies["cartID"] != null)//这个判断是在用户没有登录时,首先它没有购物车编号,那么回随机给他生成一个,但是,如果他点击再次购买类似的时,那么为了保持购物车编号的唯一
               //(这个在没登录的用户第一次的时候肯定不成立)
           {
               return context.Request.Cookies["cartID"].ToString();
           }

           else
           {
               Guid g = Guid.NewGuid();

               context.Response.Cookies["cartID"].Value = g.ToString();

               return g.ToString();//返回临时购物车编号
           }

这样,就可以非常简单的判断用户了。

 

Httpcontext的来历:

              Web应用程序加载(web.config文件相关设置------profieBase)  动态生成 profileCommon 由这个封装为 httpcontextprofile属性  进一步封装为page类的Context属性。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值