asp.net form验证

读书时最常用判断登陆的就是登陆时用cookie或session存储,然后每个页面判断是否登陆。

这样做每个页面都要判断很麻烦。

毕业半年了,这半年学会了用类,重写事件OnLoad()来,这样每个页面继承这个类!这个类里可以判断是否登陆,判断权限等等一些操作

可是如果只有登陆验证没有权限其他操作的话!这样用form验证比继承类来得更方便,这个也是今天才想到的!由于读书时注重玩,结果好多没注意听。今天重新学习了下form验证

首先配置web.config

在systen.web内配置

<authentication mode="Forms">
      <forms loginUrl="admin/Login.aspx" defaultUrl="admin/Default.aspx" timeout="1"></forms>
</authentication>
<!--
      name 属性指定验证所需要的 cookie 的名称,默认值是“.ASPXAUTH”,如果在一个服务器上下挂了多个 Web 应用程序,必须重新指定该名称,因为每个应用程序都需要唯一的 cookie。

      loginUrl 属性指定登录用的页面,用于提供用户名和密码,默认值是“login.aspx”。该页面可以和需要提供身份验证才能访问的页面放在同一个目录下(呵,我原以为这个页面要放在单独的可公开访问的目录下)。

      defaultUrl 属性指定登入后跳转到的页面,默认值是“default.aspx”,当然你也可以跳转到用户登入前的前一个页面,并且这是 .NET 的默认实现。
      timeout cookie过期时间
-->

 

<!--System.web同级-->
<location path="admin">
    <system.web>
      <authorization>
        <deny users="?"/><--拒绝匿名用户-->
      </authorization>
    </system.web>
</location>

 

我做的后台单独放在一个文件夹内!这样只要给这个文件夹设置权限就可以,如果未登陆而浏览这个文件夹内的任意文件会跳转到登陆页面,登陆成功跳转到ReturnUrl,也就是你之前访问的页面。如果ReturnUrl为空,跳转到defaultUrl,也就是你配置的默认url

接下来是代码

代码

if (TextBox1.Text == "adminss" && TextBox2.Text == "admin")
        {
           FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, CheckBox1.Checked);
            //CheckBox1.Checked如果为true将会持久保存cookie,直到cookie失效
            //后面可以接Response.Redirect(“xx.aspx”),会跳转到你指定的页面,可是并不可以没有验证就跳转!
            //如果没有上面的验证票而直接跳转会失败,因为没有建立身份验证票
            //Response.Redirect(Context.Request["ReturnUrl"]);
            //Response.Redirect("xx.aspx");
        }
        else
            Response.Write("用户名或密码错误!");

有些页面要根据判断用户是否登陆呈现不同的排版

if(User.Identity.IsAuthenticated)//这个是用来判断用户是否登陆
{
   //已登陆;
}
else
{
   //未登陆
}

有时还要取用户的用户名显示在页面上

User.Identity.Name//获取登陆名,其实就是之前FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, CheckBox1.Checked);中的TextBox1.Text;

 

 

我爱塑身网:http://www.52sushen.com

 

好了,之后就是退出代码了

FormsAuthentication.SignOut();

时间: 2024-10-03 10:58:57

asp.net form验证的相关文章

ASP.NET Forms验证实现子域名(SubDomain)共享登陆下的缺陷

一.什么是单点登录 单点登录就是在多个web应用程序中,实现统一登录方式,一但登录了某web应 用程序,其它相关联的web应用程序都无需再次登录,一个地方退出,所有相关联的 web应用程序都退出. 二.通过利用ASP.NET Forms验证模式可以实现子域名(SubDomain)共享登陆下 的缺陷 要利用Asp.NET Form验证模式实现同一主域下不同子域名共享登陆状态需要进 行以下配置 配置Web.config 1.把Asp.net的认证模式改为Forms认证模式,domain 要等于你的应

ASP.NET教程:form验证用户登录的Cookie

做用户登录,我一直用form验证的方式.有时候,为了节省时间,用户希望用户名输入框能够记住用户名,省得下次重新输入.这个时候光用form验证是不行的,因为form验证的话,用户一退出系统就失效了,所以需要借助于Cookie. 本以为做这个会很轻松,谁知花了不少时间也没有成功.虽然检验用户名和密码都是正确的,但系统总是拒绝登录,然后返回到登录页面.登录页面的用户名输入框记是记住用户名了,但用户名是乱码的. 真是郁闷至极!一度以为系统发生了错乱,重启机器也还是无济于事.经反复检查和测试发现,如果在f

一起谈.NET技术,ASP.NET4中不要相信Request.Browser.Cookies,Form验证要用UseCookies

从ASP.NET 3.5升级至ASP.NET4之后,遇到三种登录后不能保存cookie的情况(升级前一切正常): 1. 遨游3在极速模式下(默认模式). 2. FireFox中修改了UserAgent. 3. 诺基亚手机自带浏览器或者UCWeb浏览器访问博客园手机版(m.cnblogs.com). 今天终于把罪魁祸首给揪出来了,它就是Request.Browser.Cookies. 如果你在程序中使用Form验证并使用cookie保存用户的登录状态,请切记:在<authentication mo

ASP.NET4中不要相信Request.Browser.Cookies,“.NET研究”Form验证要用UseCookies

从ASP.NET 3.5升级至ASP.NET4之后,遇到三种登录后不能保存cookie的情况(升级前一切正常): 1. 遨游3在极速模式下(默认模式). 2. FireFox中修改了UserAgent上海徐汇企业网站设计与制作. 3. 诺基亚手机自带浏览器或者UCWeb浏览器访问博客园手机版(m.cnblogs.com). 今天终于把罪魁祸首给揪出来了,它就是Request.Browser.Cookies. 如果你在程序中使用Form验证并使用cookie保存用户的登录状态,请切记:在<auth

asp.net 特定目录form验证_实用技巧

就想将这个form验证运用到我作的网站上去,这样也可以增强一点网站的基础安全性. 今天上午,来到公司开始上网查找资料,学习form验证,因为我做的那个网站框架已经设计好了,需要对后台进行验证,后台的所有文件是在一个admin文件夹下,也就是说,所谓的form验证就是对admin下的文件进行form验证.我上网找了一些资料,都只是说对根目录下面的文件或者文件夹进行验证,也看到了可以运用<location path="1111">来进行排除,我就反其道而行之. 复制代码 代码如

在ASP应用中验证用户身份

    交互式的Web应用比那些只提供静态Web页面的站点要求考虑更多的安全问题.注册与密码是保护敏感信息最为常用的手段.由于ASP没有直接提供验证用户身份的方法,因此,用户必须执行登录过程以便应用系统保存和提取用户相关信息.    一.示例站点概貌    本文通过一个示例站点ASPSecurity说明ASP应用中注册与密码保护的一般实现过程.我们把用户信息保存在Web服务器上的一个Access97数据库中,DSN名称为   ASPSecurity.唯一的数据库表拥有以下字段:Signon(文本

用ASP的安全验证来对windows 2000的管理者密码进行在线修改

window|安全|在线 IIS的安全验证机制做得很好,我们可以用ASP的安全验证来对windows 2000的管理者密码进行在线修改. 当有人登录站点时,利用ServerVariables集合中的LOGIN_USER捕获登录帐号,前提是必须关闭IIS中允许匿名登录这个选项,然后在changepwd.asp文件中通过ADSI来修改密码. 以下是程序: changepwd.htm <body> <!--与该输入表单有关的客户端验证脚本(即不允许新密码为空和两次密码输入是否相等的判断)请自行

asp.net身份验证和授权

asp.net 今天闲着无聊.想起来了ASP.NET身份验证.感觉良好.贴出下列代码:login.aspx HTML代码   1<%@ Page language="c#" Codebehind="02Login.aspx.cs" AutoEventWireup="false" Inherits="身份验证._02Login" %> 2<!DOCTYPE HTML PUBLIC "-//W3C//D

cooike 与Form验证的关系

问题描述 Form验证会向客户端写一个cookie,客户端再访问页面的时候会把cookie一起发送.有几个问题不明白1,服务器端收到cookie是怎么解析的?解析的时间,解析后的内容是什么.如果没有解析这一过程,服务器是如何知道客户端已经经过验证了?IsAuthenticated是怎么决定的2,服务器端是什么时候向客户端写cookie的?在登陆成功的时候向客户端写,对登陆成功后的请求,服务器应答的时候会写吗?假设不写,那么当把cookie过期时间设置很短,会不会发生几乎每次访问都需要重新登陆,让