asp.net 身份验证(最简单篇)_实用技巧

一般来说,网站的身份验证方式都会经过以下几个步骤:
1、输入用户名和密码,单击确定按钮。
2、在后台判断用户名和密码是否正确,如果错误返回提示;如果正确,进入可访问的页面。
在ASP时代,通常都会在验证用户名和密码是否匹配之后,创建一个Session,然后在每个需要验证的页面中判断Session是否存在,如果存在,则显示页面内容;如果不存在,产生提示,并跳转到登录页面。
但是,在asp.net时代,这个过程就给大大的减化了,不再需要在每个需要验证的页面中去校验Session,只需要进行如下几步,就可以完成身份验证过程。
第一步:修改web.config文件。
1、在<system.web>和</system.web>中找到<authentication>节,将其改为“<authentication mode="Forms" />”,其中Forms代表使用表单认证。
2、<system.web>和</system.web>中添加“<authorization><deny users="?"/></authorization>”,其中“<deny users="?"/>”代表拒绝所有的匿名用户。
第二步:创建login.aspx文件。
在经过第一步之后,无论用户访问网站中的哪个文件,只要没有经过身份验证,asp.net会自动跳转到login.aspx网页上,并且在URL中使用ReturnUrl参数来传递用户当前访问的网页。
假设用户没有经过身份验证就直接访问test.aspx文件,那么asp.net会自动跳转了login.aspx网页,此时浏览器窗口中的地址栏中的URL为:“login.aspx?ReturnUrl=%2ftest.aspx”,因此,可以在身份验证通过后,再将网页跳回到ReturnUrl参数指定的网页上去。
第三步:在login.aspx文件中验证身份。
身份验证方式比较简单,一般都是创建一个文本框和一个密码框,用户输入用户名和密码后,单击提交按钮,则去数据库中验证身份,详细过程就不写了,在此只要输入的用户名为1,密码为2就认为身份验证通过。
身份验证完毕之后,使用FormsAuthentication.SetAuthCookie()为用户创建一个身份验证的票据,并将其添加到Cookie中。以后,再访问网站中的其他网页,就不需要使用进行身份验证了。单击提交按钮后的代码如下所示。

复制代码 代码如下:

protected void Button1_Click(object sender, EventArgs e)
{
//身份验证方式,本例中用户名为1,密码为2
if (TextBox1.Text == "1" && TextBox2.Text == "2")
{
/*
* 为用户名创建一个身份验证票据,并将其添加到响应的Cookie中
* SetAuthCookie的第一个参数为已验证的用户的名称。
* SetAuthCookie的第二个参数为true时代表创建持久Cookie(跨浏览器会话保存的 Cookie),为false则关闭浏览器后要重新验证身份
*/
FormsAuthentication.SetAuthCookie(TextBox1.Text, false);
}

//如果URL中没有传递ReturnUrl参数,则跳转到Default.aspx,否则跳转到ReturnUrl参数值指定的网页
if (string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
{
Response.Redirect("Default.aspx");
}
else
{
Response.Redirect(Request.QueryString["ReturnUrl"].ToString());
}
}

短短三步,就可以进行身份验证,是不是很COOL?
本例在VS2005中测试通过。
本例的优点是:过程和代码十分简单。
本例的缺点是:对整个网站都必须要进行身份验证,不能指定哪些文件可以匿名访问,哪些文件不能匿名访问。

时间: 2024-09-08 16:35:54

asp.net 身份验证(最简单篇)_实用技巧的相关文章

asp.net 身份验证机制实例代码_实用技巧

ASP.NET提供了3种认证方式:windows身份验证.Forms验证和Passport验证. windows身份验证: IIS根据应用程序的设置执行身份验证.要使用这种验证方式,在IIS中必须禁用匿名访问. Forms验证:用Cookie来保存用户凭证,并将 未经身份验证的用户重定向到自定义的登录页. Passport验证:通过Microsoft的集中身份验证服务执行的,他为成员站点提供单独登录和核心配置文件服务. 关于这三种验证方式的配置,推荐一篇文章:http://www.jb51.ne

ASP.NET无刷新分页简单实现_实用技巧

下面就是和大家分享的实现无刷新分页功能的全部步骤,欢迎学习. 1.新建一个分页存储过程: CREATE procedure [dbo].[P_Pager] (@PageNumber int, @PageSize int) as declare @sql nvarchar(4000) set @sql = 'select top ' + Convert(varchar, @PageSize) + ' * from T_Test where [type]=1 and id not in (selec

asp.net ajaxControlToolkit ValidatorCalloutExtender的简单用法_实用技巧

此控件是asp.net中的验证控件 RequiredFieldValidator , RangeValidator, RegularExpressionValidator, CompareValidator, CustomValidator,ValidationSummary的错误验证信息呼出的一个扩展控件 主要作用是把未通过验证的信息通过一个突出的层显示给用户. 主要属性: <ajaxToolkit:ValidatorCalloutExtender ID="ValidatorCallou

ASP.net的验证控件浅析_实用技巧

①.数据格式验证控件(RegularExpressionValidator) 复制代码 代码如下: <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="此用户名已注册过" ControlToValidate = "txtName" ValidationExpression = "

ASP.NET操作EXCEL的总结篇_实用技巧

公元19XX年前,关于EXCEL的操作就如滔滔江水,连绵不绝,真正操作EXCEL我也是从去年下半年开始的,有些比较复杂的年度报表之类的,做起来也有点费力,不过还是都能画出来了,关于EXCEL的报表导出,考虑到导出耗时的问题我主要采用AJAX来做的,分别捕捉几个起止状态,给客户端提示3个状态:正在检索数据...--->准备导出数据...(只是从数据库成功取出,还没有读写excel文件)-->正在读写文件-->导出数据成功,当然如果哪一过程出错,都有对应的提示,只所以想到写这篇文章,主要是因

较为全面的Asp.net提交验证方案分析 (上)_实用技巧

比如: 验证码存储在页面代码或Cookies里,暴露给客户端: 通过Session存储的验证码,虽然解决了安全问题,但一个用户只使用一个变量存储验证码,假如用户同时打开一个以上的页面,分别提交的话,就无法正常使用了: 验证码不会过期,这会留下隐患,使暴力破解变得可行(当然也可以通过刷新间隔.提交间隔.黑名单等手段加以控制): 此外还有伴随着提交产生的另一个问题--重复提交. 为解决上述问题,我曾走过不少弯路,后来总结出了一个方案可以很好的解决这些问题,本文将结合ADO.NET Entity Fr

asp.net ajaxControlToolkit FilteredTextBoxExtender的简单用法_实用技巧

验证控件的作用是如果输入的信息不符合,给用户相关的提示,儿这个文本过滤控件的好处是直接不给用户输入错误信息的机会 FilteredTextBoxExtender的一些属性: 1, TargetControlID:用来设置要控制的文本框. 2, FilterType:设置被过滤的类型,提供如下四种: Custom:如果选择这个选项,就可以在另外的一个属性中自定义不被过滤的字符 Numbers:让关联的文本框只能输入数字. UppercaseLetters:让关联的文本框只能输入大写字母. Lowe

asp.net的cms 核心代码篇_实用技巧

第一篇,我简略描述了一下我的cms标签所表示的含义.anCMS(c#版)第一篇绑定数据 第二篇,我将展示了标签背后真正运行的代码.asp.net的cms 原理篇 好像开源有点多余,核心代码就下面这些. 复制代码 代码如下: using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; namespace an.helper { ///

asp.net的cms 绑定数据篇_实用技巧

半年前,在博客园写了asp.net cms 的几篇文章,那时候,是我的cms还没做出来.都是些夸夸其谈. 现在我已经删除了那几篇. 今天,写这篇,是想感慨一下. 现在我的CMS也核心也快大致完成了. 姑且管这个 c#版的cms叫:anCms anCms的基本语法: 1.绑定数据 复制代码 代码如下: 整个语法说明: 开始标记<!--{an:方法名 filed=[字段1,字段2,字段3] sort=[字段 asc|desc] category=[分类ID] id=[编号ID] keyword=[]

asp.net 操作cookie的简单实例_实用技巧

复制代码 代码如下:  protected void Page_Load(object sender, EventArgs e)    {        if (!IsPostBack)        {            HttpCookie cookie = Request.Cookies["loginInfo"];             if (cookie != null)            {                cb_repwd.Checked = tr