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

2024-01-23 10:38

本文主要是介绍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);
}

这篇关于WCF RIA 登录验证+cookie之完整登录验证加保留用户状态的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/636137

相关文章

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

SQL Server数据库迁移到MySQL的完整指南

《SQLServer数据库迁移到MySQL的完整指南》在企业应用开发中,数据库迁移是一个常见的需求,随着业务的发展,企业可能会从SQLServer转向MySQL,原因可能是成本、性能、跨平台兼容性等... 目录一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据二、迁移工具的选择2.1

通过prometheus监控Tomcat运行状态的操作流程

《通过prometheus监控Tomcat运行状态的操作流程》文章介绍了如何安装和配置Tomcat,并使用Prometheus和TomcatExporter来监控Tomcat的运行状态,文章详细讲解了... 目录Tomcat安装配置以及prometheus监控Tomcat一. 安装并配置tomcat1、安装

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...

Linux之进程状态&&进程优先级详解

《Linux之进程状态&&进程优先级详解》文章介绍了操作系统中进程的状态,包括运行状态、阻塞状态和挂起状态,并详细解释了Linux下进程的具体状态及其管理,此外,文章还讨论了进程的优先级、查看和修改进... 目录一、操作系统的进程状态1.1运行状态1.2阻塞状态1.3挂起二、linux下具体的状态三、进程的

C#从XmlDocument提取完整字符串的方法

《C#从XmlDocument提取完整字符串的方法》文章介绍了两种生成格式化XML字符串的方法,方法一使用`XmlDocument`的`OuterXml`属性,但输出的XML字符串不带格式,可读性差,... 方法1:通过XMLDocument的OuterXml属性,见XmlDocument类该方法获得的xm