zoukankan      html  css  js  c++  java
  • Asp与Asp.net共用cookie

    还是那个ASP的网站,让添个小功能;OK,没问题,不过我肯定是用asp.net来写,绝不会去用asp来写的,虽然这两天,已经把asp搞得半懂不懂了;

    功能很简单的,却碰到一个小问题,就是用户状态,哪个用户登录了,这个当然很容易,看它的登录页面的代码,是写的session,我用C#读这个session,读不到,去网上查了查,搜出来不少文章,却没有什么实质的说明,也有的人说,asp与asp.net不可能共用session,这也有道理,session是应用程序级的变量,在当前窗口能用,关了窗口就消失了(记得好像是,只要这个窗口开着,再打开一个窗口也可以访问这个session)。

    不想去管这些了,毕竟用不了session还可以用cookie,cookie是客户端的东西,只要是一个域下面的,应该是都可以访问的;它原的asp页面没有写cookie,我给它写了一个,然后用C#来读,也是读不到;有些郁闷了;

    又去网上查了一下,说是asp直接写的cookie,asp.net无法直接读到,要重写一下,ASP代码如下:
    Response.Cookies("AdminName")=rs("username")
    Response.Write Request.Cookies("AdminName")

    第二行看起来有些多此一举,代码有些奇怪,不过这样写,asp.net的确可以正确读取到,asp.net中的代码如下:
    AdminName = Request.Cookies["AdminName"].Value.ToString();

    由于我传的值有可能是中文的,我试了一下中文,结果asp.net读取到是
    %D5%FE%D6%CE%B4%A6

    这也很简单啊,转一下就行了,结果用Server.UrlDecode转不过来,想起前一段写百度小偷程序时,一个代码转换方法;如下:
    System.Web.HttpUtility.UrlDecode(AdminName, System.Text.Encoding.GetEncoding(936));
    这样就可以获得正常的中文了;

    我把上面的思路整理一下;
    在ASP中写入cookie的方法是:
    Response.Cookies("cookie名称")="cookie的值"
    Response.Write Request.Cookies("cookie名称")


    那么在asp.net中读取时,包括读出中文:
    string cookie;
    cookie= Request.Cookies["cookie名称"].Value.ToString();
    cookie= System.Web.HttpUtility.UrlDecode(cookie, System.Text.Encoding.GetEncoding(936));

    我这里只写了asp写入cookie,asp.net读取的方法,没有写asp.net写入cookie,用asp读取;有机会再研究吧


    文章出自:http://hi.baidu.com/2hill/blog/item/3535ee12d44d2dccc3fd78bd.html

  • 相关阅读:
    Oracle数据库相关问题
    常用Oracle数据库查询SQL
    VS2019添加引用错误:COM组件调用返回错误HRESULT E_FAIL
    C#.NET重点知识点汇总(三)
    C#.NET重点知识点汇总(二)
    C#.NET重点知识点汇总(一)
    ajax的19道经典面试题
    C#设计模式——抽象工厂模式
    C#设计模式——工厂方法模式
    C#设计模式——简单工厂模式
  • 原文地址:https://www.cnblogs.com/biandande/p/1006702.html
Copyright © 2011-2022 走看看