asp.net问题,关于修改密码时候,原密码的校验
修改密码的时候,要先验证原密码是否正确。那应该如何验证呢?数据库保存的用户密码全是加密过的。我自己想了2种,不知道对不对。1.用户登录的时候,把登录信息保存在sessio...
修改密码的时候,要先验证原密码是否正确。那应该如何验证呢?数据库保存的用户密码全是加密过的。
我自己想了2种,不知道对不对。
1.用户登录的时候,把登录信息保存在session中,包括登录密码。这样在验证原密码的时候,直接可以读取session来比对了。
2.直接通过sql语句中where来判断。比如 update Users set pwd=‘654321’ where uid=‘001’ and pwd =‘123456’
因为数据库存的密码时加密的,所以每次发送的明文密码都是会去重新加密一次的。这样说起来,是哪一种更好一些。而且1中密码保存在session中,会不会说不安全啊?如果可行,密码保存在session中的值是登录时候用户输入的明文,还是读取数据库取得的密文好?
有没人回答一下,或者有更好的方法。新手,请多多帮忙! 展开
我自己想了2种,不知道对不对。
1.用户登录的时候,把登录信息保存在session中,包括登录密码。这样在验证原密码的时候,直接可以读取session来比对了。
2.直接通过sql语句中where来判断。比如 update Users set pwd=‘654321’ where uid=‘001’ and pwd =‘123456’
因为数据库存的密码时加密的,所以每次发送的明文密码都是会去重新加密一次的。这样说起来,是哪一种更好一些。而且1中密码保存在session中,会不会说不安全啊?如果可行,密码保存在session中的值是登录时候用户输入的明文,还是读取数据库取得的密文好?
有没人回答一下,或者有更好的方法。新手,请多多帮忙! 展开
展开全部
<script language="javascript" type ="text/javascript">
function CheckUser()
{
var myname =document.getElementById("CallBackURL").getAttribute("value");
var exitdos = new ActiveXObject("Microsoft.XMLHTTP");
exitdos.open("POST","CheckUser.aspx?user="+myname,false);
exitdos.send();
var reslut=exitdos.responseText;
var k=document.getElementById("button1").getAttribute("value");
document.getElementById("button2").value=reslut;
document.getElementById("Label1").style.color = "red";
document.getElementById("CallBackURL").setAttribute("value","red");
Label1.innerHTML=reslut;
Label1为页面上ASP的Label 控件
//有些ASP控件也能这样获得VALUE但是在VS2005里不能自动出来VALUE
}
</script>
<input id="CallBackURL" name="CallBackURL" type="text" size="30" value="345234" onblur="CheckUser()" />
和这个道理是一样的啊。只是把用户名加上密码一起发过去
以上回答你满意么?
function CheckUser()
{
var myname =document.getElementById("CallBackURL").getAttribute("value");
var exitdos = new ActiveXObject("Microsoft.XMLHTTP");
exitdos.open("POST","CheckUser.aspx?user="+myname,false);
exitdos.send();
var reslut=exitdos.responseText;
var k=document.getElementById("button1").getAttribute("value");
document.getElementById("button2").value=reslut;
document.getElementById("Label1").style.color = "red";
document.getElementById("CallBackURL").setAttribute("value","red");
Label1.innerHTML=reslut;
Label1为页面上ASP的Label 控件
//有些ASP控件也能这样获得VALUE但是在VS2005里不能自动出来VALUE
}
</script>
<input id="CallBackURL" name="CallBackURL" type="text" size="30" value="345234" onblur="CheckUser()" />
和这个道理是一样的啊。只是把用户名加上密码一起发过去
以上回答你满意么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
登录的时候是怎么判断你就怎么判断.
追问
登录的时候是直接发送用户名和加密的密码去数据库比对的。我的意思是,原密码判断上,如果原密码错误,会有提示。这个提示在前台就完成的吧,所以是不是应该前台就用js判断输入的原密码和保存在session中的密码值是否相等就可以了,就不用去读取数据库了。相等才去执行修改密码操作。
追答
啊我懂你的意思了.不访问数据库判断密码是否正确.
那只能存Session里了.但是安全性不如数据库,你最好加个密.
不过我还是觉得这样不好,如果密码修改了那你不还是要去访问数据库吗.
只有密码输入错误的时候才体现你的优势,但是输入错误的时候还在少数.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Ajax不会用吗?
追问
会一点点,刚学。请告知下具体实现的原理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询