winform 记住密码功能

//登录
private void btn_Login_Click(object sender, EventArgs e)
{
//记住密码
if (cb_remember.Checked == true)
{
//把用户名和密码写入到程序运行目录的xtflz.dll文件中
WriteIni("My Section", this.tb_UserName.Text.ToString(), this.tb_Password.Text.ToString(),
string.Format(@"{0}\xtflz.dll", Application.StartupPath));
MessageBox.Show("写入成功");
}
else
{
WriteIni("My Section", this.tb_UserName.Text.ToString(), "",
string.Format(@"{0}\xtflz.dll", Application.StartupPath));
}
}
#region 登录记住密码
/// <summary>
/// 提供INI文件的写操作(如Key和Value都为空(null), 则删除Section指定的节下所有键值(包括节名)[如Value为空(null), 则删除Section节下Key键值])
/// </summary>
/// <param name="Section">指定的节名</param>
/// <param name="Key">指定的键名</param>
/// <param name="Value">Key的值(请将相应的类型ing,long...转换为string类型)</param>
/// <param name="FilePath">INI文件全路径</param>
/// <returns></returns>
public static bool WriteIni(string Section, string Key, string Value, string FilePath)
{
//成功返回非零
long lRe = WritePrivateProfileString(Section, Key, Value, FilePath);
return lRe == 0L ? false : true;
}
/// <summary>
/// 提供INI文件的读操作
/// </summary>
/// <param name="Section">指定的节名</param>
/// <param name="Key">指定的键名</param>
/// <param name="FilePath">INI文件全路径</param>
/// <returns>请将string类型转换为相应int,long的类型(返回值不应超过255字符)</returns>
public static string ReadIni(string Section, string Key, string FilePath)
{
int Size = 255;
StringBuilder ReStr = new StringBuilder(255);
GetPrivateProfileString(Section, Key, "ERROR...", ReStr, Size, FilePath);
if (ReStr.ToString() == "ERROR...")
{
return null;
}
return ReStr.ToString();
}
/// <summary>
/// C#申明INI文件的写操作函数WritePrivateProfileString()
/// </summary>
/// <param name="Section"></param>
/// <param name="Key"></param>
/// <param name="Value"></param>
/// <param name="FilePath"></param>
/// <returns></returns>
//读写INI文件功能
[System.Runtime.InteropServices.DllImport("kernel32")]
public static extern long WritePrivateProfileString(string Section,
//指定的节名
string Key,
//指定的键名
string Value,
string FilePath);
/// <summary>
/// C#申明INI文件的读操作函数GetPrivateProfileString
/// </summary>
/// <param name="Section"></param>
/// <param name="key"></param>
/// <param name="Def"></param>
/// <param name="RetVal"></param>
/// <param name="Size"></param>
/// <param name="FilePath"></param>
/// <returns></returns>
[System.Runtime.InteropServices.DllImport("kernel32")]
public static extern int GetPrivateProfileString(string Section,
//指定的节名
string key,
//指定的键名
string Def,
//如果未取得正确的值则返回自定义的字符串
StringBuilder RetVal,
//保存字符串值
int Size,
//指定RetVal的长度
string FilePath);
//ini文件路径(如果ini文件不在操作系统文件夹内,则必须指定ini文件的绝对路径)
#endregion 登录记住密码
private void tb_UserName_TextChanged_1(object sender, EventArgs e)
{
string s = this.tb_UserName.Text.ToString();
string result = ReadIni("My Section", s, string.Format(@"{0}\xtflz.dll", Application.StartupPath));
if (result == null || result == "")
{
this.tb_Password.Text = "";
this.cb_remember.Checked = false;
}
else
{
this.tb_Password.Text = result;
this.cb_remember.Checked = true;
}
}
winform 记住密码功能的更多相关文章
- java实现记住密码功能(利用cookie)
<br> <input type="text" id="userName" name="userName" value=& ...
- 通过sharedpreferences实现记住密码功能
通过sharedpreferences实现记住密码功能
- jquery.cookie.js 操作cookie实现记住密码功能的实现代码
jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下. 复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready( ...
- cookie记住密码功能
很多门户网站都提供了记住密码功能,虽然现在的浏览器都已经提供了相应的记住密码功能 效果就是你每次进入登录页面后就不需要再进行用户名和密码的输入: 记住密码功能基本都是使用cookie来进行实现的,因此 ...
- 【原创】js中利用cookie实现记住密码功能
在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: HttpServletRequest request HttpServletResponse res ...
- android: SharedPreferences实现记住密码功能
既然是实现记住密码的功能,那么我们就不需要从头去写了,因为在上一章中的最佳实 践部分已经编写过一个登录界面了,有可以重用的代码为什么不用呢?那就首先打开 BroadcastBestPractice 项 ...
- vue项目实现记住密码功能
一.谷歌浏览的残留问题 现在很多的网站都有一个需求是记住密码这个功能,为的是避免用户下次登录的时候繁琐的输入过程. 像是一些主流的浏览器(比如Chrome)都有了这个功能,而且如果你登录了Chrom ...
- js中记住密码功能
js中记住密码功能(在前端实现) 直接上例子(如果你也要实现的话注意改一些变量名称,jsp代码不包含样式) Jsp代码: <form class="am-form tpl-form-l ...
- js中利用cookie实现记住密码功能
在登录界面添加记住密码功能,代码如下: //设置cookie var passKey = '4c05c54d952b11e691d76c0b843ea7f9'; function setCookie( ...
随机推荐
- 安装hive+mysql
1.源码安装mysql 以root用户首先安装libaio-0.3.104.tar.gz tar zxvf libaio-0.3.104.tar.gz cd libaio-0.3.104 make p ...
- 【原创】我所理解的自动更新-外网web服务器配置
ClientDownload和ClientUpdate共享渠道配置信息: channel-0.php //以appstore的渠道为例 <?php define('APPNAME', 'TOKE ...
- Install Jenkins Slave as Windows Service
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service SC 直接创建windows s ...
- 8139too.c网卡驱动简单分析
从事linux C开发工作以来,工作内容主要是在应用层,对nginx和unbound等软件有些了解,也常对这2个软件进行二次开发. 对网络这块一直比较有兴趣.也很好奇网卡到底是怎么接受到报文的,以及报 ...
- JS的window.onload与JQuery的$(document).ready(function(){})的区别
前段时间去面试被问及JS的加载(onload)与jQuery中加载(ready)方法的区别,瞬时懵逼了,关于这个知识点平时还真没怎么注意. 最近先来无事便查了一下资料, onload 事件(W3c上给 ...
- vs打开项目出现“尚未配置为Web项目XXXX指定的本地IIS URL HTTP://localhost:…… .要打开此项目,需要配置虚拟目录……”提示
今天打开网上下载的一个源码,出现如标题的这个问题,这是从未遇见的提示.尝试点击是,但是网站还是运行不起来.于是网上搜索,就有了这篇. 解决的方案如下: 注意:也可以用记事本把工程文件(.vcxproj ...
- AC6102 开发板千兆以太网UDP传输实验
AC6102 开发板千兆以太网UDP传输实验 在芯航线AC6102开发板上,设计了一路GMII接口的千兆以太网电路,通过该以太网电路,用户可以将FPGA采集或运算得到的数据传递给其他设备如PC或服务器 ...
- 进制转换及API接口中的转换
//十进制转二进制Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, 2));//十进制转八进制Console.Wri ...
- 关于yuv格式
首先,内存分布 1:YUV420 (1):I420: YYYYYYYY UU VV =>YUV420P (2): ...
- PXC(percona xtradb cluster)新加节点避免SST的方法
环境: node1:192.168.0.100 pxc节点 node2:192.168.0.101 新节点 把新加入的节点先建立为node1的从库,可以使用mysqldump或innobackup ...