配置文件的<system.web></system.web>结点下添加如下代码:

<!--身份验证方式-->

<authentication mode="Forms">

<forms loginUrl="~/Login.aspx" />

</authentication>

<!--授权-->

<authorization>

<!--deny:阻止,?:匿名用户,*:所有用户-->

<deny users="?"/>

</authorization>

登录的后台代码为(在这里用户名和密码都设置为admin,chkPWD:是否记住密码):

首先导入命名空间:using System.Web.Security;

if (TextBox1.Text=="admin" && TextBox2.Text=="admin")

// 将通过身份验证的用户重定向回原来请求的页面,(例如未登录用户从Default.aspx点击进入ShoppingCard.aspx,
      由于ShoppingCard.aspx不允许匿名用户访问,则倒跳转到Login.aspx,在通过验证后,页面会自动中转到ShoppingCard.aspx)
      如果用户从Public目录里的Reg.aspx点击跳转到Login.aspx,通过验证后页面会默认跳转到default.aspx

FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, chkPWD.Checked);

else

Response.Write("用户名或密码错误");

Public目录下的页面(如用户注册页面,允许匿名用户访问以注册账号),由于在web.config文件中设置了阻止匿名用户访问,所以要实现匿名用户能够访问Public目录下的页面,在这里有两种方法:
方法一:
在Public目录下添加配置文件web.config,并在<system.web></system.web>结点下添加代码:

<!--允许所有用户访问该目录下的所有页面:allow表示允许用户访问-->

<authorization>

<allow users="*"/>

</authorization>

方法二:

如果不想在Public目录下添加配置文件web.config,则可以修改根目录下的web.config,在之前默认的</system.web>结点下面再添加如下代码:

<location path="Public">

<system.web>

<authorization>

<allow users="*"/>

</authorization>

</system.web>

</location>

则整个web.config的代码结构如下所示:


还有一种情况就是当前目录下的所有页面都阻止匿名访问,但是有一个页面可以匿名访问,比如Default.aspx页面,则可以将上面的location 结点的path属性的值修改为这个可以访问的页面<lcation path="Default.aspx">
这样就实现了当面目录下除了Default.aspx和Login.aspx,以外的所有页面都要登录用户能访问。

如果要退出登录则可以通过:
FormsAuthentication.SignOut(); 销毁用户登录的凭据
FormsAuthentication.RedirectToLoginPage();重定向到用户登录页面

Request.IsAuthenticated 能判断用户是否通过验证,即用户是否登录,登录则返回true,否则返回false,这样可以实现向登录用户和未登录用户显示不用的页面信息。
User.Identity.Name能获取当前登录用户的用户名,也就是登录的时候FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, chkPWD.Checked)里的TextBox1.Text。

使用Forms认证,客户端本地时间不对无法登陆系统,解决办法:

FormsAuthentication.RedirectFromLoginPage第二个参数设置成false

Asp.Net_Form验证跟授权的更多相关文章

  1. ASP.NET Web API身份验证和授权

    英语原文地址:http://www.asp.net/web-api/overview/security/authentication-and-authorization-in-aspnet-web-a ...

  2. asp.net2.0安全性(3)--验证与授权--转载来自车老师

    "验证"与"授权"是对网页资源安全管理的两道门. 验证(Authentication):检查用户是否是合法的用户.就像是网站大门口的保卫,服责验证使用的用户名和 ...

  3. ASP.NET Core2.2 多用户验证和授权

    asp.net core2.2 用户验证 和授权有很详细和特贴心的介绍,我感兴趣的主要是这两篇: cookie身份验证 基于角色的授权 我的项目有两类用户: 微信公众号用户,用户名为公众号的openi ...

  4. 使用JWT的ASP.NET CORE令牌身份验证和授权(无Cookie)——第1部分

    原文:使用JWT的ASP.NET CORE令牌身份验证和授权(无Cookie)--第1部分 原文链接:https://www.codeproject.com/Articles/5160941/ASP- ...

  5. 从零搭建一个IdentityServer——聊聊Asp.net core中的身份验证与授权

    OpenIDConnect是一个身份验证服务,而Oauth2.0是一个授权框架,在前面几篇文章里通过IdentityServer4实现了基于Oauth2.0的客户端证书(Client_Credenti ...

  6. ASP.NET MVC5学习系列——身份验证、授权

    一.什么是身份验证和授权 人们有时对用户身份验证和用户授权之间的区别感到疑惑.用户身份验证是指通过某种形式的登录机制(包括用户名/密码.OpenID.OAuth等说明身份的项)来核实用户的身份.授权验 ...

  7. IIS7 ASP.NET 未被授权访问所请求的资源

    IIS7 ASP.NET 未被授权访问所请求的资源 ASP.NET 未被授权访问所请求的资源.请考虑授予 ASP.NET 请求标识访问此资源的权限. ASP.NET 有一个在应用程序没有模拟时使用的基 ...

  8. ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限

    开发了一个导入TXT文件的功能,执行过程中出错.提示:.....ASP.NET 未被授权访问所请求的资源.请考虑授予 ASP.NET 请求标识访问此资源的权限.ASP.NET 有一个在应用程序没有模拟 ...

  9. asp.net core策略授权

    在<asp.net core认证与授权>中讲解了固定和自定义角色授权系统权限,其实我们还可以通过其他方式来授权,比如可以通过角色组,用户名,生日等,但这些主要取决于ClaimTypes,其 ...

随机推荐

  1. 搞定pycharm专业版的安装

    学习python也有一段时间了,装了python2,也装了python3.对于IDE当然首选了人人拍掌叫好的pycharm.其实作为小白,一开始的时候并不知道什么是IDE,什么是pychram,以为装 ...

  2. 高通Audio中ASOC的machine驱动(一)

    ASoC被分为Machine.Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,再次引用上一节的内容:Machin ...

  3. man -k : nothing appropriate.

    ➜ workplace man -k zip zip: nothing appropriate. 出现这种情况,是索引库没有建立. man 和 whatis 共用一个索引库的. 我们使用  man w ...

  4. Linux内核参数基础优化

    web 服务负载均衡器常规网站服务器优化的基本配置: net.ipv4.tcp_fin_timeout =2 net.ipv4.tcp_tw_reuse =1 net.ipv4.tcp_tw_recy ...

  5. 【爬坑】MySQL 无法启动

    [说明] 启动 MySQL 的时候出现以下错误 [解决] 在网上查到了遇到相关问题的人的解决方法,参考连接 Mysql启动报错 原因是 MySQL 服务没启动,开启就好了. 最后分析之所以服务没开启, ...

  6. div中嵌套div水平居中,垂直居中

    方法一: div(父):display:table; div(子):display:table_cell;margin:0 auto;vertical-align:middle; 方法二: div(父 ...

  7. laravel上传图片报错

    在laravel的上传图片代码文件中路径如下: vendor\stevenyangecho\laravel-u-editor\src\Uploader\Upload.php第131行有一句代码错误$r ...

  8. webstorm 搭建es6开发环境

    本文转自:http://www.jianshu.com/p/26601581e152 1:新建一个Empty Project项目es6 ,然后在src目录下新建了一个es.js: 2:打开设置pref ...

  9. moand的编程学形式:一个(高阶)类型包办程序的组织--类型关乎复合

    moand的编程学形式:一个(高阶)类型完成程序的组织. 将类型系统的转换与高阶函数进行了融合,相对于链式编程而言. 类型关乎复合 范畴论与箭头的复合有关.但是并非任意两个箭头都可以复合.一个箭头的目 ...

  10. 分析占用了大量CPU处理时间的java进程中的进程

    分析占用了大量 CPU 处理时间的是Java 进程中哪个线程 下面是详细步骤: 1. 首先确定进程的 ID ,可以使用 jps -v 或者 top 命令直接查看 2. 查看该进程中哪个线程占用大量 C ...