.net 密码框赋值、输入以及页面刷新状态下的处理过程

来源:互联网 发布:matlab 数组转元胞 编辑:程序博客网 时间:2024/05/01 00:31

在最近基于ASP.NET的项目中,遇到密码框在输入密码时的一些问题,下面将这些问题总结一下,供大家参考学习:

一、输入状态为密码模式

    这个相对简单,只需要将TextBox属性中的TextMode属性设置为Password即可。

二、赋值状态为密码模式

    在一般情况下,你会发现,你将TextBox的TextMode属性设置为Password后,在后台给密码框传值时,是没有显示的,调试中你会发现,其实值已经传递给它了,只是没有显示出来;当你把TextBox的TextMode属性设置为SingleLine时,你就会看到你传递的值了,调试状态下你也可以看见你传递的值。那我们有没有什么办法来解决呢?

办法是有的。

第一种方法:

    网上很多朋友都采用了txtPWD.Attributes.Add("value", str); 的方式来实现,其中,txtPWD为密码框的ID。你会发现,问题确实是解决了,但是这种方式在安全性方面存在一定的问题。当你右键——查看源文件时,你就会看见你的密码,这是你会感觉到这种方法的缺陷性了。

第二种方法:

采用后台调用JS的方式来实现,源码如下:

    StringBuilder str = new StringBuilder();
    str.Append("
    Page.ClientScript.RegisterStartupScript(Page.GetType(), "*", str.ToString());

    其中,txtPWD和txtSurePWD都是对应前台页面中的密码框ID,而pwd为你赋给密码框的密码值。这种方式在相对安全的情况下很好地解决了密码框赋值的问题。

三、刷新页面时密码框清空问题

你会遇到,当页面有刷新操作时,密码框就会清空,还得重新输入一遍密码,是不是相当麻烦,那如在页面刷新状态下不让密码框清空呢?

你可能会想到在后台的page_load{}中作if(IsPostBack){}的处理,但是页面第一次加载时就会出现问题。

那有没有好点的方法呢?

通过在后台对密码框的内容作判断来处理。源码如下:

 protected void Page_Load(object sender, EventArgs e)
    {

    if (Request["txtPWD"] != null)
        {
            txtPWD.Attributes["value"] = Request["txtPWD"].ToString();
        }

    }

    其中,txtPWD为你页面中密码框的ID。

0 0
原创粉丝点击