zoukankan      html  css  js  c++  java
  • 记录用户 使用的是cookie,先写个cookie操作的类

    WCF RIA 登录验证+cookie之完整登录验证加保留用户状态

    时间:2011-06-16 02:04来源:银光中国网 作者:razor 点击:
    在之前我曾经发个两个帖子说明登录验证问题,这里我再讲讲如何记录下登录的用户。如果不记录下用户会有很多问题,例如刷新。 一个基于wcf ria的简单登录方式 http://bbs.silverlightchina.net/ ... 1fromuid=45530 以及 WCF RIA 登录验证升级版 http://bbs.silverlightchina.net/ ... 2fromuid=45530 记录用户我使用的是co
      

    在之前我曾经发个两个帖子说明登录验证问题,这里我再讲讲如何记录下登录的用户。如果不记录下用户会有很多问题,例如刷新。

    一个基于wcf ria的简单登录方式

    http://bbs.silverlightchina.net/ ... 1&fromuid=45530

    以及

    WCF RIA 登录验证升级版

    http://bbs.silverlightchina.net/ ... 2&fromuid=45530

    记录用户我使用的是cookie,先写个cookie操作的类。

    cookie.cs

    在mainpage.cs中加入

    public MainPage()
            {
                InitializeComponent();
                //验证是否已经登录?读cookie
              if(cookie.excits("username",_username) //进入用户仪表盘
              else //留在登录页面
              }
    //登录按钮点击后
    private void button1_Click(object sender, RoutedEventArgs e)
            {
               
                myds.checklogin(login1.textBox1.Text,login1.passwordBox1.Password, (xx) =>
                    {
                        if (xx.Value)
                        {
                            //登录成功后的处理,显示其他控件,隐藏登录控件
                            login1.Visibility = Visibility.Collapsed;
                            logout.Visibility = Visibility.Visible;//显示退出控件
                            
                            //写cookie
                            cookie.Write("username", login1.textBox1.Text, -1);//永久保留cookie
                            
                        }
                        else login1.textBlock3.Text = "用户名或者密码错误";
                    }, null);
            }

    //退出按钮点击,返回登录页面,清空cookie
    private void button2_Click(object sender, RoutedEventArgs e)
            {
                //清除cookie
                logout.Visibility = Visibility.Collapsed;
                login1.Visibility = Visibility.Visible;
                login1.textBox1.Text = "";
                login1.passwordBox1.Password = "";
                cookie.Delete("username");
                        }

    public class cookie
        {
            //是否存在
            public static bool Exists(string key, string value)        
            {            
                return HtmlPage.Document.Cookies.Contains(key + "=" + value);        
            }
            //读
            public static string Read(string key)        
            {            
                string[] cookies = HtmlPage.Document.Cookies.Split(';');            
                foreach (string cookie in cookies)            
                {                
                    string[] keyValuePair = cookie.Split('=');                
                    if (keyValuePair.Length == 2 && key == keyValuePair[0].Trim())                    
                        return keyValuePair[1].Trim();            
                }             return null;        
            } 
            //写
            public static void Write(string key, string valueint expireDays)        
            {            
                // expireDays = 0, 浏览器进程             
                // expireDays = -1, 永久保留            
                // expireDays = n, 保留n天            
                string expires = "";            
                if (expireDays != 0)            
                {                
                    DateTime expireDate = (expireDays > 0 ?                
                        DateTime.Now + TimeSpan.FromDays(expireDays) :                
                        DateTime.MaxValue);                
                    expires = ";expires=" + expireDate.ToString("R");            
                }             string cookie = key + "=" + value + expires;            
                HtmlPage.Document.SetProperty("cookie", cookie);        
            }         
            
            //删
            public static void Delete(string key)        
            {            
                DateTime expireDate = DateTime.Now - TimeSpan.FromDays(1); 
                // yesterday            
                string expires = ";expires=" + expireDate.ToString("R");            
                string cookie = key + "=" + expires;            
                HtmlPage.Document.SetProperty("cookie", cookie);        
            }
     
  • 相关阅读:
    认识ZooKeeper
    html5实现本页面元素拖放和本地文件拖放
    查询算法(一) 顺序查询与折半查询
    Shell排序算法和合并排序算法
    堆排序及修改选择排序
    Java实现冒泡排序,选择排序,插入排序
    穷举算法和递推算法(Java)
    由Spring框架中的单例模式想到的
    Java 线程面试题 Top 50(转 ImportNew)
    启动idea项目Debug模式时,报错Command line is too long
  • 原文地址:https://www.cnblogs.com/x-ing/p/3430352.html
Copyright © 2011-2022 走看看