zoukankan      html  css  js  c++  java
  • 使用FormsAuthentication进行身份验证的优缺点

    http://msdn.microsoft.com/zh-cn/library/xdt4thhy(v=VS.90).aspx

    一. 首先说一下使用FormsAuthentication进行验证的优点:

    用法:

    1. 在web.config配置文件中

     <system.web>

     <authorization>
          <deny users="?" />
        </authorization>

        <authentication mode="Forms" >
          <forms loginUrl="Login.aspx" name="a05" >
          </forms>

        </authentication>

     </system.web>

    注解: <deny users="?" /> 表示没有通过验证的时候 拒绝所有用户访问

          <forms loginUrl="Login.aspx" name="a05" >       a05 表示cookie的名称

    2. 在login.aspx页面

        protected void Button1_Click(object sender, EventArgs e)
            {
                FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket("UserName",false,30); 

                string encryptedTicket = FormsAuthentication.Encrypt(authTicket); //加密
                //   存入Cookie
                HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
                authCookie.Expires = authTicket.Expiration;
                Response.Cookies.Add(authCookie);
            }

         注解: new FormsAuthenticationTicket("UserName",false,30); // UserName 是用户名 30 是过期时间(以分钟为单位)

    如果用户说 部分页面不需要这个验证 可以这样解决:

    新建立一个文件夹 在新的文件夹里面 添加web.config文件

    <?xml version="1.0"?>
    <configuration>

      <system.web>
        <authorization>
          <allow users="*"/>
        </authorization>
      </system.web>

    </configuration>

    如何取得当前登录的用户的用户名?

    Context.User.Identity.Name

    如何退出登录?

    调用 SignOut 方法以清除用户标识并移除身份验证票证 (Cookie)。然后将用户重定向到登录页

     //至此用法结束

    现象就是 当用户没有登录的时候 访问任何页面 都就导航到login.aspx ; 用户登录后 就可以畅行无阻

                当cookie过期的时候 和 没有登录的情形相同

    缺点: 在同一台机器上有2个人使用 如果第一个人已经登录 第二个人就不用登陆了

           或者 今天登陆了 ,明天就不用登陆了(同一个人 如果cookie过期时间足够长的话)

         这种情形对于 博客园 购物网站 一类的应用倒是挺合适的  不过对于一个web应用程序来说 不太合适

    那么这样的话 如何解决类此web应用程序登陆限制的需求呢?

    我上一次写的 利用HttpModule 检查用户是否有权限打开指定的网址

    http://www.cnblogs.com/zhwl/archive/2011/02/21/1959904.html 

    应该对这个话题有帮助



  • 相关阅读:
    204. Count Primes (Integer)
    203. Remove Linked List Elements (List)
    202. Happy Number (INT)
    201. Bitwise AND of Numbers Range (Bit)
    200. Number of Islands (Graph)
    199. Binary Tree Right Side View (Tree, Stack)
    198. House Robber(Array; DP)
    191. Number of 1 Bits (Int; Bit)
    190. Reverse Bits (Int; Bit)
    189. Rotate Array(Array)
  • 原文地址:https://www.cnblogs.com/zhwl/p/1961924.html
Copyright © 2011-2022 走看看