配置文件的<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. ubuntu下配置时间同步NTP

    1参考文献: 1.鸟哥的Linux私房菜:第十五章.时间服务器: NTP 服务器(强烈建议看完) 2.http://www.crsay.com/wiki/wiki.php/server/centos/ ...

  2. C# 泛型约束 xxx Where T:约束(二)

    泛型是什么? 通过上篇的实例  C# 泛型约束 xxx<T> Where T:约束(一),我们对泛型有一定的认识. 所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型,泛型编程 ...

  3. C++进阶书籍(转)

    推荐的阅读顺序:level 1从<<essential c++>>开始,短小精悍,可以对c++能进一步了解其特性以<<c++ primer>>作字典和课 ...

  4. 博客系统实战——SprintBoot 集成Thymeleaf 实现用户增删查改(含源码)

    近来在学习SprintBoot +Thymeleaf +Maven搭建自己的博客系统,故在学习过程中在此记录一下,也希望能给广大正在学习SprintBoot和Thymeleaf的朋友们一个参考. 以下 ...

  5. C内存开辟与平移

  6. python第二十九课——文件读写(复制文件)

    自定义函数:实现文件复制操作有形参(2个) 没有返回值相似版(不用) def copyFile(src,dest): #1.打开两个文件:1个关联读操作,1个关联写操作 fr=open(src,'rb ...

  7. linux虚拟化课堂总结图2019_4_23

  8. leetcode 460. LFU Cache

    hash:存储的key.value.freq freq:存储的freq.key,也就是说出现1次的所有key在一起,用list连接 class LFUCache { public: LFUCache( ...

  9. OpenCV——颜色缩减、计时函数、访问像素

    //颜色空间缩减 //src:源图片 //dst:目标图片 //divideWith:缩减宽度 void ColorSpaceReduction(Mat src,int divideWith,Mat& ...

  10. Kafka设计解析(二十)Apache Flink Kafka consumer

    转载自 huxihx,原文链接 Apache Flink Kafka consumer Flink提供了Kafka connector用于消费/生产Apache Kafka topic的数据.Flin ...