Form表单验证

 <system.web>
    <compilation debug="true" targetFramework="4.0" />

    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>


    <!--Forms验证分两步   第一步 authentication 为认证  第二部 authorization 为授权-->

    <!--设置 Forms 认证方式-->
    <authentication mode="Forms">
      <forms loginUrl="Login.aspx" name="UserName" cookieless="UseCookies">
      </forms>
    </authentication>

    <!--拒绝所有未登录用户访问-->
    <authorization>
      <deny users="?"/>
    </authorization>

  </system.web>

表单验证只需在配置文件中设置即可(如上)

上面的代码设置了除了Login.aspx 页面外 其他所有的资源都禁止 未登录的用户访问 

如果登陆页面里有一些图片LOGO之类的存在其他目录里就需要加上下面的设置

  <!--设置Images文件夹为所有用户可以访问(设置此步因为登陆界面有图片  就把图片文件中权限放开)-->
  <location path="Images">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

上面的设置为路径为 Images 的文件夹下的资源 允许 所有的用户访问

这样Form验证就完成了

这样在登陆成功的时候把用户信息写进Cookie里就OK了(如下)

   
            //给Form验证机制设置参数
            FormsAuthentication.SetAuthCookie(UserName_txt.Text, false);

我们可以在页面的调用 Request.IsAuthenticated 查看 当前请求是否为已登录用户发起的 此属性是个Bool 值

在页面中调用  FormsAuthentication.SignOut() 注销登陆

在页面中调用 HttpContext.Current.User.Identity.Name   或者直接 User.Identity.Name 返回当前登陆的用户名 

 

 

 

posted @ 2012-12-27 08:55  不要用我的二来伤害我  阅读(350)  评论(1编辑  收藏  举报