zoukankan      html  css  js  c++  java
  • ASP.NET—From验证:全部代码及讲解

    关于Forms验证的文章网上千百篇,但花了1天半的时间学会了“一点点”,
    现在把代码分享出来,希望对像一样的初学者所有帮助,也希望高手给指点一下:



    Step 1:新建数据库(库:MyForms ;表:users ;字段:ID,userName, userPwd);
    Step 2:新建网站,web.config 的文件全部代码如下:


    <?xml version="1.0"?>
    <configuration>
        
    <appSettings/>
        
    <connectionStrings/>
      
        
    <system.web>
            
    <compilation debug="true"/>
        
        
    <sessionState cookieless="AutoDetect"/>
        
    <!--解决当浏览器端禁用Cookie时-->
        
            
    <authentication mode="Forms">
          
    <forms name="CookieName" loginUrl="login.aspx" protection="All"></forms>
          
    <!--loginUrl为登录面URL,如果没有身份验证Cookie,客户端将被重定向到此URL-->
        
    </authentication>
        
        
    <authorization>
          
    <deny users="?"/> 
        
    </authorization>
        
        
    <customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
            
    <error statusCode="403" redirect="NoAccess.htm" />
            
    <error statusCode="404" redirect="FileNotFound.htm" />
        
    </customErrors>
        
        
    </system.web>
      
    </configuration>


    Step 3:添加一个 login.aspx  页面;拖2个 TextBox ,1个Button 和1个CheckBox ;
               并将CheckBox 的text 属性设为:“是否保存Cookis ";
    Step 4:login.aspx 的隐藏代码如下:


    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient; //导入命名空间

    public partial class _Default : System.Web.UI.Page 
    {
        
    protected void Page_Load(object sender, EventArgs e)
        
    {

        }

        
    protected void Button1_Click(object sender, EventArgs e)
        
    {
            
    string userName = TextBox1.Text.Trim();
            
    string userPwd = TextBox2.Text.Trim();
            SqlConnection con 
    = new SqlConnection("Server=.;Database=MyForms;User ID=sa;Password=123456");
            con.Open();
            SqlCommand cmd 
    = new SqlCommand("select count(*) from users where userName='" + userName + "' and userPwd='" + userPwd + "'", con);
            
    int count = Convert.ToInt32(cmd.ExecuteScalar());
            
    if (count > 0)
            
    {
                System.Web.Security.FormsAuthentication.SetAuthCookie(
    this.TextBox1.Text, this.CheckBox1.Checked);
                Response.Redirect(
    "Default.aspx");
                
    //上面两行,也可以换成下面一行,如通过验证则直接转向请求的页面,而不需要Responsel.Redirect("");
                
    //System.Web.Security.FormsAuthentication.RedirectFromLoginPage(this.TextBox1.Text, false);   
            }


            
    else
            
    {
                Response.Write(
    "用户不合法");
            }
           
        }

    }


    Step 5:拖一个Button 到 Default.aspx 上,将其text 属性设为"登出",其事件代码如下:


    protected void Button1_Click(object sender, EventArgs e)
        
    {
            System.Web.Security.FormsAuthentication.SignOut();
        }
  • 相关阅读:
    lucene 大量数据搜索的处理方案
    PC总线带宽与内存带宽的计算
    【JavaP6大纲】Dubbo篇:Dubbo特性?
    【JavaP6大纲】Dubbo篇:Dubbo 支持哪些序列化协议?说一下 Hessian 的数据结构?PB 知道吗?为什么 PB 的效率是最高的?
    【JavaP6大纲】Dubbo篇:如何自己设计一个类似 Dubbo 的 RPC 框架?
    【JavaP6大纲】Dubbo篇:Dubbo SPI 和 Java SPI 区别?
    【JavaP6大纲】Dubbo篇:如何基于 Dubbo 进行服务治理、服务降级、失败重试以及超时重试?
    【JavaP6大纲】Dubbo篇:Dubbo 用到哪些设计模式?
    【JavaP6大纲】Dubbo篇:Dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?
    【JavaP6大纲】MySQL篇:传播行为
  • 原文地址:https://www.cnblogs.com/sunshch/p/2526888.html
Copyright © 2011-2022 走看看