C# 如何实现记住用户名和密码? C#中如何实现记住登陆窗口中的用户名和密码信息呢?当我退出程序后,再次打开程序,用户名和密码框记录上次登录时输入的内容。求解、、给个详细代码更好了~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以放在用户范围(User Scrope)的配置中(Settings.Settings)。也可以放在注册表HKCU(当前用户)下。当然最好加密保存。 使用cookie HttpCookie cookie_name = new HttpCookie("name"); HttpCookie cookie_code = new HttpCookie("code"); cookie_name.Value = TextMobile.Text.Trim(); cookie_code.Value = TextCode.Text.Trim(); cookie_name.Expires = DateTime.Now.AddYears(1); cookie_code.Expires = DateTime.Now.AddYears(1); Response.Cookies.Add(cookie_name); Response.Cookies.Add(cookie_code); 保存信息到app.config或XML,再下次登录时查询app.config或XML获取密码自定义类,通过静态属性 楼上正解 一般保存到app.config中,Cookie 也可以 你先讲清楚是桌面程序还是Web程序...机制都不一样,方法也不一样... 呵呵,抱歉的说下,不是Web程序,是手机端程序... //判断是否保存 if (checkBoxSave.Checked) { SaveUserDefault(txtBoxLocation.Text, txtBoxUsername.Text, txtBoxPassword.Text, cboBoxRole.Text); } else { DeleteUserDefault(); }//保存用户信息 public void SaveUserDefault(string location, string username, string pwd, string role) { try { SetStringRegistryValue("sys_info1", location); SetStringRegistryValue("sys_info2", username); SetStringRegistryValue("sys_info3", pwd); SetStringRegistryValue("sys_info4", role); } catch (System.Exception ex) { InfoHandler.ShowException(ex); } } public void DeleteUserDefault() { try { DeleteRegistryValue("sys_info1"); DeleteRegistryValue("sys_info2"); DeleteRegistryValue("sys_info3"); DeleteRegistryValue("sys_info4"); } catch (System.Exception ex) { } } /// 获取用户保存的登录信息 public string[] LoadUserDefault() { string[] userInfo = new string[4]; try { for (int i = 0; i < 4;i++ ) { string dedault = ""; string value = RegistryAccess.GetStringRegistryValue("sys_info" + (i + 1).ToString(), dedault); } } catch (System.Exception ex) { userInfo = null; } return userInfo; }//注册表操作// Method for retrieving a Registry Value. static public string GetStringRegistryValue(string key, string defaultValue) { RegistryKey rkCompany; RegistryKey rkApplication; rkCompany = Registry.CurrentUser.OpenSubKey(SOFTWARE_KEY, false).OpenSubKey(COMPANY_NAME, false); if (rkCompany != null) { rkApplication = rkCompany.OpenSubKey(APPLICATION_NAME, true); if (rkApplication != null) { foreach (string sKey in rkApplication.GetValueNames()) { if (sKey == key) { return (string)rkApplication.GetValue(sKey); } } } } return defaultValue; } // Method for storing a Registry Value. static public void SetStringRegistryValue(string key, string stringValue) { RegistryKey rkSoftware; RegistryKey rkCompany; RegistryKey rkApplication; rkSoftware = Registry.CurrentUser.OpenSubKey(SOFTWARE_KEY, true); rkCompany = rkSoftware.CreateSubKey(COMPANY_NAME); if (rkCompany != null) { rkApplication = rkCompany.CreateSubKey(APPLICATION_NAME); if (rkApplication != null) { rkApplication.SetValue(key, stringValue); } } } static public void DeleteRegistryValue(string key) { RegistryKey rkSoftware; RegistryKey rkCompany; RegistryKey rkApplication; rkSoftware = Registry.CurrentUser.OpenSubKey(SOFTWARE_KEY, true); rkCompany = rkSoftware.OpenSubKey(COMPANY_NAME,true); if (rkCompany != null) { rkApplication = rkCompany.OpenSubKey(APPLICATION_NAME,true); if (rkApplication != null) { rkApplication.DeleteValue(key); } } //Registry.CurrentUser.DeleteSubKey(key) ; }//可以自己加密一下 把登陆名称和密码保存到Cookie里面,页面打开时,读取Cookie显示在输入框里就可以。写cookieHttpCookie cookie = new HttpCookie("Info");//定义cookie对象以及名为Info的项DateTime dt = DateTime.Now;//定义时间对象TimeSpan ts=new TimeSpan(1,0,0,0);//cookie有效作用时间,具体查msdncookie.EXPires = dt.Add(ts);//添加作用时间cookie.Values.Add("userid","aaa");//增加属性cookie.Values.Add("password","bbbb");Response.AppendCookie(cookie);//确定写入cookie中 读取cookieif(Request.Cookies["Info"]!=null){ string userId=Convert.ToString(Request.Cookies["Info"].Values["userid"]); string password=Convert.ToString(Request.Cookies["Info"].Values["password"]);} 把用户名密码保存到本地文件,如xml或ini文件,txt都可以...记得要加密...每次启动时,从文件读取信息填充登录界面即可...没啥难度啊... 想记住用户名和密码就得把信息保存在哪个地方.这些地方可以是: 用户配置文件\XML文件\TXT\INI\注册表\任何你可以写入并读取的文件...最关键的是加密. 求windows应用程序的一个计时器 求结果 过程或函数 'UpdateNormInGridView' 需要参数 '@NormName',但未提供该参数。 winform如何打开word文档? 简单缓存的问题,第一次用缓存 不能实现父--子关系显示数据,显示两个表中的相关数据!急~~~~ 电子称的问题求助??? .NET 与SQL SERVER数据库的连接 C#数组的追加 如何取得XML中的值 ComboBox怎样才能支持有多个DisplayMember 打印 程序跟踪
也可以放在注册表HKCU(当前用户)下。当然最好加密保存。
HttpCookie cookie_name = new HttpCookie("name");
HttpCookie cookie_code = new HttpCookie("code");
cookie_name.Value = TextMobile.Text.Trim();
cookie_code.Value = TextCode.Text.Trim();
cookie_name.Expires = DateTime.Now.AddYears(1);
cookie_code.Expires = DateTime.Now.AddYears(1);
Response.Cookies.Add(cookie_name);
Response.Cookies.Add(cookie_code);
自定义类,通过静态属性
//判断是否保存
if (checkBoxSave.Checked)
{
SaveUserDefault(txtBoxLocation.Text, txtBoxUsername.Text, txtBoxPassword.Text,
cboBoxRole.Text);
}
else
{
DeleteUserDefault();
}
//保存用户信息
public void SaveUserDefault(string location, string username, string pwd, string role)
{
try
{
SetStringRegistryValue("sys_info1", location);
SetStringRegistryValue("sys_info2", username);
SetStringRegistryValue("sys_info3", pwd);
SetStringRegistryValue("sys_info4", role);
}
catch (System.Exception ex)
{
InfoHandler.ShowException(ex);
}
}
public void DeleteUserDefault()
{
try
{
DeleteRegistryValue("sys_info1");
DeleteRegistryValue("sys_info2");
DeleteRegistryValue("sys_info3");
DeleteRegistryValue("sys_info4");
}
catch (System.Exception ex)
{
}
}
/// 获取用户保存的登录信息
public string[] LoadUserDefault()
{
string[] userInfo = new string[4];
try
{
for (int i = 0; i < 4;i++ )
{
string dedault = "";
string value = RegistryAccess.GetStringRegistryValue("sys_info" + (i + 1).ToString(), dedault);
}
}
catch (System.Exception ex)
{
userInfo = null;
}
return userInfo;
}//注册表操作
// Method for retrieving a Registry Value.
static public string GetStringRegistryValue(string key, string defaultValue)
{
RegistryKey rkCompany;
RegistryKey rkApplication; rkCompany = Registry.CurrentUser.OpenSubKey(SOFTWARE_KEY, false).OpenSubKey(COMPANY_NAME, false);
if (rkCompany != null)
{
rkApplication = rkCompany.OpenSubKey(APPLICATION_NAME, true);
if (rkApplication != null)
{
foreach (string sKey in rkApplication.GetValueNames())
{
if (sKey == key)
{
return (string)rkApplication.GetValue(sKey);
}
}
}
}
return defaultValue;
} // Method for storing a Registry Value.
static public void SetStringRegistryValue(string key, string stringValue)
{
RegistryKey rkSoftware;
RegistryKey rkCompany;
RegistryKey rkApplication; rkSoftware = Registry.CurrentUser.OpenSubKey(SOFTWARE_KEY, true);
rkCompany = rkSoftware.CreateSubKey(COMPANY_NAME);
if (rkCompany != null)
{
rkApplication = rkCompany.CreateSubKey(APPLICATION_NAME);
if (rkApplication != null)
{
rkApplication.SetValue(key, stringValue);
}
}
} static public void DeleteRegistryValue(string key)
{
RegistryKey rkSoftware;
RegistryKey rkCompany;
RegistryKey rkApplication; rkSoftware = Registry.CurrentUser.OpenSubKey(SOFTWARE_KEY, true);
rkCompany = rkSoftware.OpenSubKey(COMPANY_NAME,true);
if (rkCompany != null)
{
rkApplication = rkCompany.OpenSubKey(APPLICATION_NAME,true);
if (rkApplication != null)
{
rkApplication.DeleteValue(key);
}
}
//Registry.CurrentUser.DeleteSubKey(key) ;
}//可以自己加密一下
写cookie
HttpCookie cookie = new HttpCookie("Info");//定义cookie对象以及名为Info的项
DateTime dt = DateTime.Now;//定义时间对象
TimeSpan ts=new TimeSpan(1,0,0,0);//cookie有效作用时间,具体查msdn
cookie.EXPires = dt.Add(ts);//添加作用时间
cookie.Values.Add("userid","aaa");//增加属性
cookie.Values.Add("password","bbbb");
Response.AppendCookie(cookie);//确定写入cookie中
读取cookie
if(Request.Cookies["Info"]!=null)
{
string userId=Convert.ToString(Request.Cookies["Info"].Values["userid"]);
string password=Convert.ToString(Request.Cookies["Info"].Values["password"]);
}