本文转自:http://www.cnblogs.com/fengzheng126/archive/2012/04/06/2435513.html

  1. ASP.NET的安全认证:Windows验证 (默认)、nonePassportForms
  2.  
  3. Froms验证
  4.  
  5. 一、开启Forms验证
  6.  
  7. 、打开web.config配置文件
  8.  
  9. 、找到<authentication mode="Windows"/> ,修改为
  10.  
  11. <authentication mode="Forms">
  12.  
  13. <forms loginUrl="login.aspx" defaultUrl="default.aspx" name=".ASPX"></forms>
  14.  
  15. </authentication>
  16.  
  17. 即将login.aspx设为默认登录页,如果系统检测到用户未登录,则自动跳转到login.aspx页面;默认主页为:default.aspx;后缀名为:.ASPX;
  18.  
  19. 添加<authorization>,设置访问权限
  20.  
  21. <authorization>
  22. <deny users="?" ></deny> <!--问好代表匿名用户,*代表阻止所有用户-->
  23. </authorization>
  24.  
  25. 如果使用Forms验证,就需要用FormsAuthentication类来实现验证过程,FormsAuthentication类经常和Membership类结合使用,进行用户的登录验证。
  26.  
  27. 创建身份验证 Cookie
  28.  
  29. SetAuthCookie ( string userName, bool createPersistentCookie ) ,第二个参数:若要创建持久 Cookie(跨浏览器会话保存的 Cookie),则为 true;否则为 false
  30.  
  31. string username = TextBox1.Text.Trim();
  32. string password = TextBox2.Text.Trim();
  33. if(登陆成功)
  34. {
  35. FormsAuthentication.SetAuthCookie(username,false);
  36. Response.Redirect("default.aspx"); //登录成功的话,跳转到主页
  37. }
  38.  
  39. 返回原始请求url
  40.  
  41. RedirectFromLoginPage ( string userName, bool createPersistentCookie )
  42.  
  43. 将经过身份验证的用户重定向回最初请求的 URL 或默认 URL。第二个参数:若要创建持久 Cookie(跨浏览器会话保存的 Cookie),则为 true;否则为 false
  44.  
  45. string username = TextBox1.Text.Trim();
  46. string password = TextBox2.Text.Trim();
  47. if(登陆成功)
  48. {
  49. FormsAuthentication.RedirectFromLoginPage(username, false); //登录成功的话,跳转到原始请求页
  50. }
  51.  
  52. 删除 Forms 身份验证
  53.  
  54. SignOut () ;通常用于注销用户或用户退出登录。
  55.  
  56. login.aspx.cs中登录按钮的事件代码:
  57.  
  58. protected void Button1_Click(object sender, EventArgs e)
  59. {
  60. string username = TextBox1.Text.Trim();
  61. string password = TextBox2.Text.Trim();
  62.  
  63. FormsAuthentication.RedirectFromLoginPage(username, false);//自动转到原始请求页
  64.  
  65. //跳转到网站首页
  66. //FormsAuthentication.SetAuthCookie(username,false);
  67. //Response.Redirect("default.aspx");
  68. }
  69.  
  70. default.aspx.cs中的代码:
  71.  
  72. label1标签显示用户名:Label1.Text = Context.User.Identity.Name;//在cookie中提取用户名
  73.  
  74. 、注销登录按钮:
  75.  
  76. FormsAuthentication.SignOut();
  77.  
  78. FormsAuthentication.RedirectToLoginPage();//退出后重定向到登录页,这两行是配合使用的。

[转]ASP.NET中的forms验证的更多相关文章

  1. Asp.net中基于Forms验证的角色验证授权

    Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活. Forms 验证方式对基于用户的验证授 ...

  2. asp.net中使用forms验证

    1.首先在web.config中修改验证方式为 "Forms" <authentication mode="Forms"> 这里的模式有很多中,可自 ...

  3. 也谈Asp.net 中的身份验证

    钱李峰 的这篇博文<Asp.net中的认证与授权>已对Asp.net 中的身份验证进行了不错实践.而我这篇博文,是从初学者的角度补充了一些基础的概念,以便能有个清晰的认识. 一.配置安全身 ...

  4. ASP.NET中 RegularExpressValidator(正则验证)的使用

    原文:ASP.NET中 RegularExpressValidator(正则验证)的使用 ylbtech-ASP.NET-Control-Validator: RegularExpressValida ...

  5. 利用.net的内部机制在asp.net中实现身份验证

    知识点: 在ASP.NET中,任何页面都是继承于System.Web.UI.Page,他提供了Response,Request,Session,Application的操作.在使用Visual Stu ...

  6. ASP.NET 中的 authentication(验证)与authorization(授权)

    这两个东西很绕口,也绕脑袋. 一般来说,了解authentication(验证)的用法即可,用于自定义的用户验证. authorization(授权)主要通过计算机信息来控制. “*”:所有用户: “ ...

  7. Asp.net简单实现forms验证

    <configuration> <system.web> <compilation debug="true" targetFramework=&quo ...

  8. ASP.NET中的身份验证有那些?你当前项目采用什么方式验证请解释

    ASP.NET身份验证模式包括Windows.Forms(窗体).Passport(护照)和None(无). l  Windows身份验证—常结合应用程序自定义身份验证使用使用这种身份验证模式时,AS ...

  9. ASP.NET中的请求验证

    这两天做项目的时候偶然发现项目中的保存功能的时候出现这样的异常:异常详细信息: System.Web.HttpRequestValidationException: 从客户端(XXXX)中检测到有潜在 ...

随机推荐

  1. ubuntu maven环境安装配置

    转载地址:http://my.oschina.net/hongdengyan/blog/150472#OSC_h1_4 一.环境说明: 操作系统:Ubuntu 12.04.2 LTS maven:ap ...

  2. 6个朋友(codevs 2832)

    2832 6个朋友  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 有这么一种说法:认识6个人,你就认识全世 ...

  3. android 获取资源文件 r.drawable中的图片转换为drawable、bitmap

    1.R-Drawable Resources resources = mContext.getResources(); Drawable drawable = resources.getDrawabl ...

  4. C++动态内存管理之shared_ptr、unique_ptr

    C++中的动态内存管理是通过new和delete两个操作符来完成的.new操作符,为对象分配内存并调用对象所属类的构造函数,返回一个指向该对象的指针.delete调用时,销毁对象,并释放对象所在的内存 ...

  5. free(): invalid next size (fast/normal)问题

    本文转自 http://blog.sina.com.cn/s/blog_77f1e27f01019qq9.html  ,在此感谢! c++编译常会出现free(): invalid next size ...

  6. Python中通过cx_oracle操作ORACLE数据库的封闭函数

    哈哈,看来我的SQL自动化发布,马上就全面支持ORACLE,MYSQL,POSTGRESQL,MSSQL啦... http://blog.csdn.net/swiftshow/article/deta ...

  7. Wcf for wp8 创建wcf服务 连接wp8模拟器并显示来自wcf服务的接口信息 (一)

    下载: vs2012 pro for wp8 iis express http://download.microsoft.com/download/B/2/8/B2801FEE-9A60-4AFA-8 ...

  8. Wordpress模板制作、改造、设计

    如何定义index.php以及如何派生出其它文件,在index.php文件中,在body元素内,新建如下结构化标记元素,各元素都带有不同的id属性: <div id=”page”> < ...

  9. hdu 1269 迷宫城堡 强连通分量

    迷宫城堡 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  10. 在Linux下搭建SVN服务器

    svn不仅仅可以用于程序开发,还可以做很多事情,例如备份文档. CentOS下:安装 这样同一台服务器便可以运行多个svnserver了 检查端口 注:如果修改了svn配置,需要重启svn服务 -j ...