winform 记住密码功能

Posted 周大闯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 记住密码功能的主要内容,如果未能解决你的问题,请参考以下文章

怎样删除ANDROID开发中WebView记住密码的功能?

记住密码功能是怎么实现的

登录 记住密码

利用SharedPreferences完成记住账号密码的功能

阻止浏览器记住密码功能

js中利用cookie实现记住密码功能