zoukankan      html  css  js  c++  java
  • 关于ASP.NET的“Forms身份验证”

    目录结构如图如示:

     

    如果用户没有通过身份验证则跳转到登录页面让用户登录,在配置文件的<system.web></system.web>结点下添加如下代码:

          <!--身份验证方式-->      

     <authentication mode="Forms">

            <forms loginUrl="~/Login.aspx" />

          </authentication>

          <!--授权-->

          <authorization>

            <!--deny:阻止,?:匿名用户,*:所有用户-->

            <deny users="?"/>

          </authorization>

    登录的后台代码为(在这里用户名和密码都设置为admin,chkPWD:是否记住密码):

    首先导入命名空间:using System.Web.Security;

    if (TextBox1.Text=="admin" && TextBox2.Text=="admin")

    {

         // 将通过身份验证的用户重定向回原来请求的页面,(例如未登录用户从Default.aspx点击进入ShoppingCard.aspx,
          由于ShoppingCard.aspx不允许匿名用户访问,则倒跳转到Login.aspx,在通过验证后,页面会自动中转到ShoppingCard.aspx)
          如果用户从Public目录里的Reg.aspx点击跳转到Login.aspx,通过验证后页面会默认跳转到default.aspx

         FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, chkPWD.Checked);

    }

    else

    {

          Response.Write("用户名或密码错误");

    }

    Public目录下的页面(如用户注册页面,允许匿名用户访问以注册账号),由于在web.config文件中设置了阻止匿名用户访问,所以要实现匿名用户能够访问Public目录下的页面,在这里有两种方法:
    方法一:
    在Public目录下添加配置文件web.config,并在<system.web></system.web>结点下添加代码:

    <!--允许所有用户访问该目录下的所有页面:allow表示允许用户访问-->

    <authorization>

       <allow users="*"/>

    </authorization>

    方法二:

    如果不想在Public目录下添加配置文件web.config,则可以修改根目录下的web.config,在之前默认的</system.web>结点下面再添加如下代码:

    <location path="Public">

        <system.web>

          <authorization>

            <allow users="*"/>

          </authorization>

        </system.web>

      </location>

    则整个web.config的代码结构如下所示:


    还有一种情况就是当前目录下的所有页面都阻止匿名访问,但是有一个页面可以匿名访问,比如Default.aspx页面,则可以将上面的location 结点的path属性的值修改为这个可以访问的页面<lcation path="Default.aspx">
    这样就实现了当面目录下除了Default.aspx和Login.aspx,以外的所有页面都要登录用户能访问。

    如果要退出登录则可以通过:
    FormsAuthentication.SignOut(); 销毁用户登录的凭据
    FormsAuthentication.RedirectToLoginPage();重定向到用户登录页面

    Request.IsAuthenticated 能判断用户是否通过验证,即用户是否登录,登录则返回true,否则返回false,这样可以实现向登录用户和未登录用户显示不用的页面信息。
    User.Identity.Name能获取当前登录用户的用户名,也就是登录的时候FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, chkPWD.Checked)里的TextBox1.Text。

     

     

     

  • 相关阅读:
    ISAG协议中彩信支持的几种附件格式(河南电信)
    河南电信ISAG短信下行数据格式
    SQL中varchar和nvarchar有什么区别?
    通过一个很实用的例子让你学会TSQL编程的基本语法和思想
    在读取或者保存word时,程序捕获到word异常“word无法启动转换器mswrd632 wpc”
    工作基本搞定等待周五入职
    ClickOnce发布时,资源文件添加问题
    访问IIS元数据库失败
    一个随机产生中文简体字的一个类
    QQ抢车位外挂(续)
  • 原文地址:https://www.cnblogs.com/ianunspace/p/4036185.html
Copyright © 2011-2022 走看看