关于asp:login控件和验证码的问题?(转)

1.验证码页面添加.
2.将这验证码页面添加到login控件中:
拖曳一Login控件,将之切换到模式下,在Html源文件中在表格中密码那行后添加:
 <tr>
   
<td style="width: 151px">
       
<asp:Label ID="Label1" runat="server"
AssociatedControlID="Password">验证码:</asp:Label>
   
</td>
 </tr>
 <tr>
  
<td style="width: 151px">
 
   <asp:TextBox ID="txtImgValid" runat="server" Font-Size="0.8em"
></asp:TextBox>
     <asp:ImageButton
id="imgValid" ImageUrl="~/public/imageValidate.aspx" runat="server"
/>
  
</td>
 </tr>
其中ImageUrl="~/public/imageValidate.aspx“
的imageValidate.aspx指的就是我们第一步建立的验证码文件。
3.在login控件的authenticate事件中加入代码
protected
void Login1_Authenticate(object sender, AuthenticateEventArgs e)
   
{
       
TextBox txtImage = Login1.FindControl("txtImgValid") as TextBox;
        
       
if (Session["CheckCode"] == null)
       
{
           
Response.Write("<script
language=‘javascript‘>alert(‘未可知错误!‘)</script>");
           
e.Authenticated = false;
           
return;
       
}
        
       
if (String.Compare(Session["CheckCode"]
.ToString(),txtImage.Text,true)!=0)
       
{
           
Response.Write("<script
language=‘javascript‘>alert(‘不匹配!‘)</script>");
           
e.Authenticated = false;
           
return;
       
}
      
       
e.Authenticated = true;
   
}

这样的做法只能验证验证码,而用户身份根本没有验证。
即使输入错误的用户和密码,只要验证码正确,就能登陆成功。
这是为什么,该怎么解决?

原文:http://social.msdn.microsoft.com/Forums/ie/zh-CN/03175f21-e441-4347-9f8e-bf8ecfbf8454/asplogin

时间: 2024-08-12 20:31:58

关于asp:login控件和验证码的问题?(转)的相关文章

【转】ASP.NET关于Login控件使用

原文如下: 今天上网找了一些关于Login控件的使用资料,遇到一个问题:Login控件本身具有不为空的验证,就是说当用户没有输入用户名或密码的时候,直接点提交不会通过验证,会在用户名和密码的后面出现“*”,意为必须输入的项.我想,如果我不想让它显示“*”,让显示“必须填写用户名”和“必须填写密码”的提示信息.上网找了半天,就是找不到我想要达到的效果.最后还是自己研究出来了.显示“*”是Login控件本身具备的特点,所以我选择了右键控件,选择“转换为模板”,这样Login就作为几个控件合在一起的组

Asp.net--GridView控件--(1)高亮显示当前所在行,(2)高亮显示单击行,(3)绑定数据库数据,(4)分页,(5)导出到excel表格,(6)首列插入序号

//本页代码中的DB类及方法在http://www.cnblogs.com/Deerjiadelu/p/7252769.html中能查询到 (1)Asp.net--GridView控件--高亮显示当前所在行 protected void gvquery_DataBound(object sender, GridViewRowEventArgs e) { //高亮显示光标所在行 if (e.Row.RowType == DataControlRowType.DataRow)//判断当前行是不是数据

Asp.Net控件的客户端命名

我们在用ASP.NET写出来的网页,用浏览器来查看生成的客户端代码的时候经常看到这样的代码:GridView1_ctl101_WebUserControl1_webuserControlButton,那么这个命名有什么规律,是怎么来的拉?本次我们使用Reflector查看.net的代码研究其中的规律. 我们的ASP.NET服务器端控件在生成客户端控件的时候一般有id 和name两个属性,这两个属性我们在服务器端可以通过ClientID和UniqueID来得到.以一个Button为例,用Refle

asp.net控件的异步刷新

需求:我们知道,asp.net控件中的button控件,默认是开启了自动回发的,而有时候,我们不想刷新整个界面,而只想局部刷新,可页面中又偏偏用到了.net button控件. 虽然我很讨厌.net控件,但有时候在系统对性能要求不高的情况下,为了偷懒,使用.net控件是无可厚非的. aspx页面代码(只写了关键代码):  <asp:Button ID="<span style="color:#FF0000;">btnSearch</span>&q

【ASP.net控件】DropDownList数据绑定一个小bug

绑定数据出现这种情况,明明在第一项插入了一条数据,却始终在DropDownList中没有显示出来. 代码如下: if (!IsPostBack) { //绑定城市 DataTable dtCity = new HighSearch().GetCitySelect(); DropDownList1.DataSource = dtCity; DropDownList1.DataValueField = "citycode"; DropDownList1.DataTextField = &q

ASP.NET控件&lt;ASP:Button /&gt; html控件&lt;input type=&quot;button&quot;&gt;区别联系

ASP.NET控件<ASP:Button />-------html控件<input type="button">杨中科是这么说的:asp和input是一样的东西 服务器只认识input,我们可以直接写input 但是asp是要把自己自动翻译成input再交给服务器的.其实是一样的东西 写写我看到的区别:                asp控件,直接可以用c#编程                input加上 runat=“server” 也被c#编程了 说白

asp.net控件开发基础(1)(转)原文更多内容

asp.net本身提供了很多控件,提供给我们这些比较懒惰的人使用,我认为控件的作用就在此,因为我们不想重复工作,所以要创建它,这个本身便是一个需求的关系,所以学习控件开发很有意思. wrox网站上有本书 Professional ASP.NET 2.0 Server Control and Component Development 现在还没有出版,但网站上放出了代码,所以正好下载过来学习一下. 我看过前几章代码,环环相扣,作者用不同的知识向我们展示同一个效果,所以循序渐进的学下来很有好处. 虽

asp.net控件循环变色

protected void lbtnState_Click(object sender, EventArgs e) { foreach (var item in div_state.Controls) { if (item is LinkButton) { (item as LinkButton).ForeColor = System.Drawing.Color.Black; if (sender is LinkButton) { LinkButton btn = (LinkButton)se

介绍一个免费的具备数据显示/录入/更新/删除功能的asp.net控件

我不能说它比datagrid更强, 因为datagrid有很多深层次的东西可以发掘,但是我能说它比datagrid更易用,更实用,因为它已经轻松实现如下功能,同时,它是完全免费的,不需要注册,没有任何的功能限制. 1. 通过属性设置数据表的显示 2. 客户端数据排序 3. 各种字段类型的格式化显示 4. 所有数据表轻松实现内置的数据添加.更新.删除功能 5. 提供密码字段的支持并使用32位MD5编码 6. 添加.更新图象字段.链接文件字段时自动上传文件 7. 上传图片时可以自动生成缩略图 8.