原文:Asp.Net2.0下C#环境 Login控件实现用户登录

一、前台显示效果







二、前台代码

            <asp:Login ID="Login1" runat="server" BackColor="#F7F7DE" BorderColor="#CCCC99" BorderStyle="Solid"

                BorderWidth="1px" Font-Names="Verdana" Font-Size="10pt" OnAuthenticate="Login1_Authenticate">

                <TitleTextStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />

                <LayoutTemplate>

                    <table border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse">

                        <tr>

                            <td>

                                <table border="0" cellpadding="0">

                                    <tr>

                                        <td align="center" colspan="2" style="font-weight: bold; color: white; background-color: #6b696b">

                                            用户登录</td>

                                    </tr>

                                    <tr>

                                        <td align="right">

                                            <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">用户名:</asp:Label></td>

                                        <td>

                                            <asp:TextBox ID="UserName" runat="server" CssClass="STYLE1"></asp:TextBox>

                                            <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"

                                                ErrorMessage="必须填写“用户名”。" ToolTip="必须填写“用户名”。" ValidationGroup="Login1">*</asp:RequiredFieldValidator>

                                        </td>

                                    </tr>

                                    <tr>

                                        <td align="right">

                                            <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">密码:</asp:Label></td>

                                        <td>

                                            <asp:TextBox ID="Password" runat="server" TextMode="Password" CssClass="STYLE1"></asp:TextBox>

                                            <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"

                                                ErrorMessage="必须填写“密码”。" ToolTip="必须填写“密码”。" ValidationGroup="Login1">*</asp:RequiredFieldValidator>

                                        </td>

                                    </tr>

                                    <tr>

                                        <td align="right">

                                            <asp:Label ID="Label1" runat="server" AssociatedControlID="Password">验证码:</asp:Label></td>

                                        <td>

                                            <asp:TextBox ID="GetCode" runat="server"  CssClass="STYLE2"></asp:TextBox>

                                            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="Password"

                                                ErrorMessage="必须填写“验证码”。" ToolTip="必须填写“验证码”。" ValidationGroup="Login1">*</asp:RequiredFieldValidator><asp:Image ID="Image1" runat="server" ImageUrl="~/include/GetValidate.aspx" ImageAlign="Top"

                                                                            alt="看不清?点击更换" onclick="this.src=this.src+'?'" />

                                        </td>

                                    </tr>

                                    <tr>

                                        <td align="center" colspan="2" style="color: red">

                                            <asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>

                                        </td>

                                    </tr>

                                    <tr>

                                        <td align="center" colspan="2">

                                            <asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="登录" ValidationGroup="Login1" /></td>

                                    </tr>

                                </table>

                            </td>

                        </tr>

                    </table>

                </LayoutTemplate>

            </asp:Login>

三、后台代码

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)

    {

        TextBox GetCode = Login1.FindControl("GetCode") as TextBox;//获取登陆控件中验证码文本框值

        if (Request.Cookies["CheckCode"].Value == null)

        {

            Response.Write(@"<script language=JavaScript>{window.alert('您的浏览器设置已被禁用 Cookies,您必须设置浏览器允许使用 Cookies 选项后才能使用本系统!');}</script>");

            return;

        }

        else

        {

            )

            {

                Response.Write(@"<script language=JavaScript>{window.alert('验证码输入不正确!');}</script>");

                return;

            }

            string UserLoginID = Login1.UserName.ToString().Trim().Replace("'", "").Replace("=", "");//得到输入的用户名

            string UserLoginPwd = Login1.Password.ToString().Trim().Replace("'", "").Replace("=", "");//得到输入的密码

            //得到md5值

            string md5Pwd = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(UserLoginPwd, "md5").ToLower();

            string mySql = "select * from [User] where [sLoginID]='" + UserLoginID + "' and [LoginPWD]='" + md5Pwd + "'";

            //下面部署自己的逻辑处理,以下仅供参考

            DBConn myDB = new DBConn();

            try

            {

                SqlDataReader Rs = myDB.getDataReader(mySql);

                if (!Rs.Read())

                {

                    e.Authenticated = false;//登录不通过

                }

                else

                {

                    Session["UserLoginID"] = UserLoginID;

                    Session["UserLoginPwd"] = UserLoginPwd;

                    e.Authenticated = true;//登录通过

                    Response.Redirect("index.aspx");

                }

            }

            catch (Exception ex)

            {

                Response.Write("数据库错误,错误原因:" + ex.Message);

                Response.End();

            }



        }

    }

四、关于验证码可以本Blog的随笔中找到,地址为:

http://www.cnblogs.com/zm235/archive/2006/10/02/520233.html

Asp.Net2.0下C#环境 Login控件实现用户登录的更多相关文章

  1. login控件“您的登录尝试不成功。请重试”的解决方法

    原文:login控件"您的登录尝试不成功.请重试"的解决方法 遇到login控件“您的登录尝试不成功.请重试”报错之后,在网上找了很久,也按照如下帖子设置了 application ...

  2. asp.net2.0安全性(4)--Login系列控件--转载来自车老师

    前面主要说了与安全相关的一系列的类,现在我们使用这些类就可以做出我们自己的安全系统了.其实微软的目的远不至于此,下面我们就来看一下微软为我们提供的Login系列控件. Login系列控件是微软为了简化 ...

  3. ASP.NET2.0组件控件开发视频 初体验

    原文:ASP.NET2.0组件控件开发视频 初体验 ASP.NET2.0组件控件开发视频 初体验 录了视频,质量不是很好,大家体验下.我会重新录制的 如果不清楚,可以看看http://v.youku. ...

  4. ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性

    原文:ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性 深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开 ...

  5. asp.net用户身份验证时读不到用户信息的问题 您的登录尝试不成功。请重试。 Login控件

    原文:asp.net用户身份验证时读不到用户信息的问题 您的登录尝试不成功.请重试. Login控件 现象1.asp.net使用自定义sql server身份验证数据库,在A机器新增用户A,可以登录成 ...

  6. ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件

    原文:ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件 Login控件它是属于Membership服务的一部分,必须配置Membership提供程 ...

  7. ASP.NET关于Login控件使用 (转)

    分类: C# 2011-02-21 10:38 4599人阅读 评论(0) 收藏 举报 loginasp.netstringurlserverbutton 今天上网找了一些关于Login控件的使用资料 ...

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

    1.验证码页面添加.2.将这验证码页面添加到login控件中:拖曳一Login控件,将之切换到模式下,在Html源文件中在表格中密码那行后添加: <tr>    <td style= ...

  9. asp.net2.0安全性(3)--验证与授权--转载来自车老师

    "验证"与"授权"是对网页资源安全管理的两道门. 验证(Authentication):检查用户是否是合法的用户.就像是网站大门口的保卫,服责验证使用的用户名和 ...

随机推荐

  1. 禁用viewstate

    <asp:Dropdownlist/>禁用viewstate以后 public partial class _Default : System.Web.UI.Page     {      ...

  2. uva 11732 - strcmp() Anyone? 不错的Trie题

    题解:http://blog.csdn.net/u013480600/article/details/23122503 我的代码一直TLE,,,看了人家的之后,认为1.链式前向星比較好,2.*dept ...

  3. [置顶] Ftp客户端概要设计

    Ftp客户端概要设计 1.概述 ftp是基于TCP的文件传输协议,主要是用于控制远程文件,如下载.上传.续传.重命名.删除等.其命令是基于可见字符,易于理解的方式交互的.客户端与服务器端的交互遵循一应 ...

  4. javascript实现的可改变滚动方向的无缝滚动

    效果图如下: 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...

  5. Delphi控件的停靠功能

    Delphi自带的许多控件都有停靠功能,而且操作非常简单,大可不必选用第三方控件.        基本上,要进行Dock操作至少需要两个组件,一个人被附着的Dock Site组件,另一个人附在Dock ...

  6. Delphi接口的底层实现(接口在内存中仍然有其布局,它依附在对象的内存空间中,有汇编解释)——接口的内存结构图,简单清楚,深刻 good

    引言 接口是面向对象程序语言中一个很重要的元素,它被描述为一组服务的集合,对于客户端来说,我们关心的只是提供的服务,而不必关心服务是如何实现的:对于服务端的类来说,如果它想实现某种服务,实现与该服务相 ...

  7. Android开发经验之—intent传递大数据

    在Activity或者组件之前传递信息时,一般採用intent绑定bundle的方式传值,但在使用过程中须要注意的是不要用bundle传递大容量数据: 在做项目的过程中,须要将听写界面的听写结果信息传 ...

  8. CodeForces 13E. Holes 分块处理

    正解是动态树,太难了,仅仅好分块处理水之.看了看status大概慢了一倍之多..     分块算法大体就是在找一个折衷点,使得查询和改动的时间复杂度都不算太高,均为o(sqrt(n)),所以总的时间复 ...

  9. UVa 474 - Heads / Tails Probability

    题目:计算1/(2^n)的值的前4为有效数字以及位数. 分析:数论,大整数.直接用数组模拟就可以. 说明:打表计算.查询输出. #include <iostream> #include & ...

  10. hdu3790最短路径问题 (用优先队列实现的)

    Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的.   Inp ...