存储“;记住我”;本地信息c#(total neweginner)
本文关键字:total neweginner 信息 记住我 存储 | 更新日期: 2023-09-27 18:19:44
我几天前开始用c#编程,所以我在这方面完全是新手。根据我在其他语言方面的经验,我觉得它有点"简单"。
我正在构建一个系统,用户可以登录到我的应用程序,该系统正在运行。我想有一个"记住我"的设置,信息存储在本地。最好的方法是什么?我只保存用户名和密码散列。
编辑:这是一个桌面应用程序。只需使用HttpWebRequest
即可将登录信息发送到php脚本
您可以使用ConfigurationManager类来管理应用程序的设置。
您可以使用此功能将新密钥添加到您的配置文件中:
public bool setSetting(string pstrKey, string pstrValue)
{
Configuration objConfigFile =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
bool blnKeyExists = false;
foreach (string strKey in objConfigFile.AppSettings.Settings.AllKeys)
{
if (strKey == pstrKey)
{
blnKeyExists = true;
objConfigFile.AppSettings.Settings[pstrKey].Value = pstrValue;
break;
}
}
if (!blnKeyExists)
{
objConfigFile.AppSettings.Settings.Add(pstrKey, pstrValue);
}
objConfigFile.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
return true;
}
然后保存您的用户名(例如)
setSetting("username", usernameTextBox.Text);
一旦您的应用程序启动,您就可以从ConfigurationManager
中读取之前保存的信息
usernameTextBox.Text = ConfigurationManager.AppSettings["username"];
您可以在C#中创建应用程序设置
这是你要做的。
别忘了加密它。
如果您使用的是ASP.NET,您可以在登录用户时通过第二个参数设置身份验证cookie
FormsAuthentication.SetAuthCookie(model.UserName, true);
第二个参数将cookie设置为您的请求,并使"记住我"选项成为可能。
我从你的问题中了解到,php文件是服务器,而对于客户端,你使用的是windows表单。你正在进行某种HTML报废,并在获胜表单中显示结果HTML。如果这就是你正在做的事情,那么
//1. Create a dictionary to store cookie collection
public static Dictionary<string, Cookie> CookieCollection { get; set; }
//2. Store cookie in that collection
foreach (Cookie clientcookie in response.Cookies)
{
if (!CookieCollection.ContainsKey("AuthCookieName"))
CookieCollection .Add(userName, clientcookie);
else
CookieCollection ["userName"] = clientcookie;
}
//3. If remember me is clicked then send the same while creating request
request.CookieContainer.Add(request.RequestUri,
new Cookie("AuthCookieName", CookieCollection ["userName"]));
其中AuthCookieName是身份验证cookie的名称。唯一的缺点是,当应用程序存在时,字典中存储的所有cookie都将消失。如果选中了"记住我",解决方案可以是序列化cookie并将其存储在数据库中。