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

http://bbs.silverlightchina.net/forum.php?mod=viewthread&tid=8159&fromuid=149119


记录用户使用的是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 value, int 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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值