如果用session或者cache,要针对访问不同用户设一个session或者cache的,这样对服务器要求是否更高呢??

解决方案 »

  1.   

    可以考虑使用cookie和profile.
      

  2.   

    网上有篇文章就是说如何使用profile来保存主题的
    我个人感觉,那篇文章有大力推广微软新技术的意图.
    如果仅是为了记录theme而却动用一个aspnetdb.mdb或aspnetdb.mdf的话,实在是杀鸡用牛刀.
    不如cookie方便.轻巧
      

  3.   

    cookie好像要客户端支持才可以
      

  4.   

    嗯.不过,你可以在web.config中修改cookie的方式.以支持 不支持cookie的浏览器.
      

  5.   

    对cookie不熟,能说明一下怎样使用吗?
      

  6.   

    这个是要写出不少代码的.我大概写一些实现方式
    在global.asax中的session_start事件,去查看一个指定的cookie是否存在,如不存在,则创建
    ,并将cookie的值指定为一个你已经存的主题.在app_code中建一个类,继承自page.
    重写此类的 OnPreInit 事件.
    先去判断一下刚才在session_start中创建的cookie是否存在,如存在,则读取cookie的值.
    再将page.Theme =你读取的cookie的值.最后,你任意创建的aspx文件,都要继承自你创建的类,而不是继承默认的 System.Web.UI.Page
    这样你可以了根据每个用户机器上的cookie的值不同,来加载不同的theme了.另外,一定要在application_error中去捕获异常,因为设置page.theme为一个不存的值时(这种情况是如果客户修改了存在theme的cookie的值为一个不存的值时,则会报异常),try catch ,以及page_error是捕获不到这个异常的.最后,你需要创建一个页面,让客户端去修改他们的theme,也就是将他们选择的theme名,修改回cookie中,这样下次就会显示新的主题了.