配置身份验证
Asp.net Framework支持三种验证类型
Windows身份验证
.net Passport身份验证
Forms身份验证
对于特定程序,同一时刻只能启用一种身份验证方式
默认情况下,系统将启用Windows身份验证。验证用户职责委派给了IIS
.Net Passport身份验证是诸如MSN和Hotmail这样的微软Web站点使用的验证类型。
Forms身份验证。启用Forms身份验证后,通常会使用Cookie来验证用户。
Web.Config
1、配置Forms身份验证
Forms身份验证的几个配置选项如下所示:
cookieless 不支持Cookie时也可以使用Forms身份验证 UseCookies,UseUri,AutoDetect和UseDeviceProfie默认值 UseDeviceProfie
defaultUrl 用于指定用户通过身份验证后转向的页面,默认值:default.aspx
domain 用于指定与验证Cookie相关的域,默认为空字符串
enableCrossAppRedirects 用于通过传递查询字符串中的验证凭证来在应用程序之间验证用户。默认:false
loginUrl 用于指定Login页面的路径。默认:Login.aspx
name 用于指定验证cookie的名字。默认:.ASPXAUTH
path 用于指定和验证cookie相关联的路径。默认值:/
protection 用于指定如何对验证cookie进行加密。取值:All,Encryption,None和Validation。默认:ALL
requiressSSL 用于指定在传递验证Cookie时是否需要使用SSL连接,默认False
slidingExpiration 用于防止验证Cookie在一段时间内的再次访问中过期。取值:true,false 默认:true
timeout 用于指定验证Cookie有多少分钟后过期。默认30
<?xml version="1.0"?>
<configuration>
<system.web>
<authentication mode="Forms">
<forms name="s2_2"/>
</authentication>
</system.web>
</configuration>
2、使用无Cookie的Forms身份验证
Forms身份验证通常是使用Cookie来识别用户。有不支持Cookie的,可以用无Cookie身份验证功能。
启用无Cookie身份验证功能后,将通过一串添加到页面URL中的唯一字符串标识来识别用户。
如果用户在应用程序的相关页面间来回导航,那么字符串标识也将自动地在这些页面间进行传递,同时应用程序会在这样的页面交叉请求中自动识别用户。
如果希望ASP.NET Framework能自动检测浏览器是否支持Cookie功能,必须将Cookieless特性设置为AutoDetect。
3、在Forms身份验证中使用相对超时限制
用户在一段30分钟时间间隔内即使没有请求任何页面,该用户也仍然处于已验证状态。如果用户在合法登录后越过30分钟未访问任何页面,那么该用户将自动登出应用程序。
强制用户每分钟都进行一次登录。
4、跨应用程序使用Forms身份验证
问题:
1.不希望公司的员工在公司不同的应用程序间切换时时行多次登录
2.在运行一个Web服务器集群(web farm ),不希望用户在访问不同的Web服务器时都进行登录。
通过Web配置文件的machineKey元素,可以设置该加密密钥和校验码。
GenerateKeys.aspx
显示指定了密钥的MachineKey元素,可以加入服务器根目录的Web配置文件。
5、跨域使用Forms身份验证
P62
6、使用FormsAuthentication类
使用Forms身份验证的主要API是FormsAuthentication类。
属性:
cookieDomain 返回身份验证Cookie关联的域
cookieMode 返回无Cookie身份验证模式。
cookieSupported 支持cookie 并Forms启用了cookie功能,返回true
DefaultUrl 验证成功后所转向的页面URL
EnableCrossAppRedirects 当身份验证凭证从查询字符串中删除时,该属性返回True
FormsCookieName 返回身份验证Cookie的名字
FormsCookiePath 返回和身份验证Cookie相关联的路径
LoginUrl 返回和用户身份验证时所转向的页面URL
RequiredSSL
SlidingExpiration 相对超时限制策略
方法:
Authenticate 根据存储在Web配置文件中的用户名和密码清单来验证输入的用户名和密码
Decrypt 用于解密身份验证Cookie
GetAuthCookie 用于获取身份验证Cookie
GetRedirectUrl 用于获取重定向到Login页面之前的原始页面路径
HashPasswordForStoringInConfigFile 对将要存入Web配置文件中的密码进行散列
RedirectFromLoginPage 使用返回重定向到Login页面前的原始页面
RedirectToLoginPage 将用户请求重定向到Login页面
RenewTicketIfOld 用于更新身份验证cookie的过期时间
SetAuthCookie 创建和发布身份验证Cookie
SignOut 移除身份验证Cookie并同时使用户登出应用程序
7、使用User类
通过Page.User或HttpContext.User属性可以获取当前用户的用户信息。
2011-5-4 10:07:23 danny
Asp.net Framework支持三种验证类型
Windows身份验证
.net Passport身份验证
Forms身份验证
对于特定程序,同一时刻只能启用一种身份验证方式
默认情况下,系统将启用Windows身份验证。验证用户职责委派给了IIS
.Net Passport身份验证是诸如MSN和Hotmail这样的微软Web站点使用的验证类型。
Forms身份验证。启用Forms身份验证后,通常会使用Cookie来验证用户。
Web.Config
<configuration> <system.web> <authentication mode="Forms"> </authentication> </system.web> </configuration>
1、配置Forms身份验证
Forms身份验证的几个配置选项如下所示:
cookieless 不支持Cookie时也可以使用Forms身份验证 UseCookies,UseUri,AutoDetect和UseDeviceProfie默认值 UseDeviceProfie
defaultUrl 用于指定用户通过身份验证后转向的页面,默认值:default.aspx
domain 用于指定与验证Cookie相关的域,默认为空字符串
enableCrossAppRedirects 用于通过传递查询字符串中的验证凭证来在应用程序之间验证用户。默认:false
loginUrl 用于指定Login页面的路径。默认:Login.aspx
name 用于指定验证cookie的名字。默认:.ASPXAUTH
path 用于指定和验证cookie相关联的路径。默认值:/
protection 用于指定如何对验证cookie进行加密。取值:All,Encryption,None和Validation。默认:ALL
requiressSSL 用于指定在传递验证Cookie时是否需要使用SSL连接,默认False
slidingExpiration 用于防止验证Cookie在一段时间内的再次访问中过期。取值:true,false 默认:true
timeout 用于指定验证Cookie有多少分钟后过期。默认30
<?xml version="1.0"?>
<configuration>
<system.web>
<authentication mode="Forms">
<forms name="s2_2"/>
</authentication>
</system.web>
</configuration>
2、使用无Cookie的Forms身份验证
Forms身份验证通常是使用Cookie来识别用户。有不支持Cookie的,可以用无Cookie身份验证功能。
启用无Cookie身份验证功能后,将通过一串添加到页面URL中的唯一字符串标识来识别用户。
如果用户在应用程序的相关页面间来回导航,那么字符串标识也将自动地在这些页面间进行传递,同时应用程序会在这样的页面交叉请求中自动识别用户。
如果希望ASP.NET Framework能自动检测浏览器是否支持Cookie功能,必须将Cookieless特性设置为AutoDetect。
<?xml version="1.0"?> <configuration> <system.web> <authentication mode="Forms"> <forms cookieless="AutoDetect"/> </authentication> </system.web> </configuration>
3、在Forms身份验证中使用相对超时限制
用户在一段30分钟时间间隔内即使没有请求任何页面,该用户也仍然处于已验证状态。如果用户在合法登录后越过30分钟未访问任何页面,那么该用户将自动登出应用程序。
<?xml version="1.0"?> <configuration> <system.web> <authentication mode="Forms"> <forms slidingExpiration="false" timeout="1"/> </authentication> </system.web> </configuration>
强制用户每分钟都进行一次登录。
4、跨应用程序使用Forms身份验证
问题:
1.不希望公司的员工在公司不同的应用程序间切换时时行多次登录
2.在运行一个Web服务器集群(web farm ),不希望用户在访问不同的Web服务器时都进行登录。
通过Web配置文件的machineKey元素,可以设置该加密密钥和校验码。
<?xml version="1.0"?> <configuration> <system.web> <machineKey decryption="Auto" validation="SHA1" decryptionKey="AutoGenerate,IsolateApps" validationKey="AutoGenerate,IsolateApps"/> <authentication mode="Forms"> <forms slidingExpiration="false" timeout="1"/> </authentication> </system.web> </configuration>
GenerateKeys.aspx
<%@ Page Language="C#" %> <%@ Import Namespace="System.Security.Cryptography" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { lblAES.Text = GetSequence(64); lblSHA1.Text = GetSequence(128); } private string GetSequence(int length) { byte[] buffer = new byte[length / 2]; RNGCryptoServiceProvider provider = new RNGCryptoServiceProvider(); provider.GetBytes(buffer); StringBuilder builder = new StringBuilder(length); for (int i = 0; i < buffer.Length; i++) builder.Append(string.Format("{0:X2}", buffer[i])); return builder.ToString(); } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> AES: <asp:Label ID="lblAES" runat="server" /> <br /> <br /> SHA1: <asp:Label ID="lblSHA1" runat="server" /> </div> </form> </body> </html>
显示指定了密钥的MachineKey元素,可以加入服务器根目录的Web配置文件。
5、跨域使用Forms身份验证
P62
6、使用FormsAuthentication类
使用Forms身份验证的主要API是FormsAuthentication类。
属性:
cookieDomain 返回身份验证Cookie关联的域
cookieMode 返回无Cookie身份验证模式。
cookieSupported 支持cookie 并Forms启用了cookie功能,返回true
DefaultUrl 验证成功后所转向的页面URL
EnableCrossAppRedirects 当身份验证凭证从查询字符串中删除时,该属性返回True
FormsCookieName 返回身份验证Cookie的名字
FormsCookiePath 返回和身份验证Cookie相关联的路径
LoginUrl 返回和用户身份验证时所转向的页面URL
RequiredSSL
SlidingExpiration 相对超时限制策略
方法:
Authenticate 根据存储在Web配置文件中的用户名和密码清单来验证输入的用户名和密码
Decrypt 用于解密身份验证Cookie
GetAuthCookie 用于获取身份验证Cookie
GetRedirectUrl 用于获取重定向到Login页面之前的原始页面路径
HashPasswordForStoringInConfigFile 对将要存入Web配置文件中的密码进行散列
RedirectFromLoginPage 使用返回重定向到Login页面前的原始页面
RedirectToLoginPage 将用户请求重定向到Login页面
RenewTicketIfOld 用于更新身份验证cookie的过期时间
SetAuthCookie 创建和发布身份验证Cookie
SignOut 移除身份验证Cookie并同时使用户登出应用程序
7、使用User类
通过Page.User或HttpContext.User属性可以获取当前用户的用户信息。
2011-5-4 10:07:23 danny
发表评论
-
16、使用数据源缓存
2011-06-07 09:43 821使用数据源缓存 除了在页面或用户控件级别进行缓存之外,也可以 ... -
15、使用部分页面缓存2
2011-06-02 09:17 7753、共享用户控件的输出缓存 默认情况下,同一个用户控件在不同页 ... -
14、使用部分页面缓存
2011-05-31 16:10 855使用部分页面缓存 1、 ... -
13、使用页面输出缓存2
2011-05-23 09:23 9558、使用编程方式设置页面输出缓存过期 可以使用Response ... -
12、使用页面输出缓存
2011-05-22 09:31 716使用页面输出缓存 可以给页面添加<%@ OutputC ... -
11、缓存概览
2011-05-21 13:04 438缓存概览 ASP.NET 3.5 Framework支持下面 ... -
10、使用用户配置文件
2011-05-18 09:09 1118使用用户配置文件 Asp.net Framework提供了一 ... -
9、使用Session状态
2011-05-17 09:16 883使用Session状态 不可能 ... -
8、使用浏览器Cookie
2011-05-16 11:13 1204使用浏览器Cookie set-cook ... -
7、使用角色管理器
2011-05-14 10:32 562使用角色管理器 Asp.net Framework提供三个角 ... -
6、使用ASP.NET Membership
2011-05-13 21:36 795使用ASP.NET Membership 通过Asp.net ... -
5、配置安全授权
2011-05-13 15:14 603配置安全授权 授权是指识别用户是否可以访问特定资源的过程。 ... -
3、使用LoginStatus控件
2011-05-12 21:44 937使用LoginStatus控件 根据当前用户的验证状态,Lo ... -
2、使用CreateUserWizard控件
2011-05-12 09:18 1179使用CreateUserWizard控件 CreateUse ... -
1、使用Login控件
2011-05-11 21:27 1400使用Login控件 1、Login控件概览 加密文件: Se ...
相关推荐
谷歌身份验证器是一款用于增强在线安全的工具,尤其在谷歌浏览器环境下使用广泛。这款插件主要功能是提供两步验证(2-Step Verification)服务,为用户的账户添加额外的安全层。两步验证是一种安全措施,它要求用户...
本指南将介绍如何在新式身份验证环境下为Exchange Online配置EWS模拟角色,以便服务账户可以代表其他用户执行操作。 首先,我们需要进行环境准备。确保在具有管理员权限的PowerShell环境中运行以下步骤: 1. 更改...
这个错误通常表明远程计算机已经启用了身份验证要求,但你的本地计算机没有设置相应的身份验证策略,或者RDP客户端未配置为使用必要的安全层。Windows RDP默认情况下要求使用网络级别身份验证(Network Level ...
5. **web.config**: 这是应用程序的配置文件,其中定义了身份验证和授权规则。对于Forms身份验证,你需要在`<system.web>`部分设置`authentication`和`authorization`元素。例如,`<authentication mode="Forms">`...
这意味着,当PPP连接建立时,将使用system域中的本地用户进行身份验证。 3. **链路协议和验证模式**:在接口配置中明确指定了链路协议为PPP,并且配置了PAP验证模式。这是实现双向PAP验证的关键步骤之一。 通过...
2. **配置服务和客户端**:在服务和客户端的配置文件中,将自定义行为添加到适当的行为集合,并指定使用自定义的身份验证机制。这可以通过修改`behaviors`节和添加`behaviorConfiguration`属性来完成。 3. **处理...
【vSphere 身份验证详解】 vSphere 是 VMware 提供的一种虚拟化管理平台,它包含了 VMware ESXi(轻量级操作系统)和 vCenter Server(中央管理工具)。在 vSphere 7.0 中,身份验证机制是确保数据中心安全的重要...
SQLSERVER身份验证登录不上 SQLSERVER2005 解决 Windows 身份验证和 SQLSERVER 身份验证登录不上的问题是一个常见的问题。正如标题所示,本文将讨论两种身份验证登录不上的问题及其解决方法。 一、Windows 身份...
4. **身份验证**:LoginModule完成身份验证后,会创建一个或多个Principal对象,并将其添加到Subject中,表示认证成功。 5. **授权**:一旦Subject通过身份验证,就可以基于Subject的权限执行授权操作,决定用户...
下面将详细介绍如何为Windows XP SP3系统配置网络级身份验证。 #### 实现原理 Windows XP SP3本身具备支持NLA的能力,但是默认情况下这项功能未被启用。为了激活该功能,需要通过修改注册表来开启必要的组件和服务...
在使用Windows远程桌面连接时,有时可能会遇到一个棘手的问题,即显示“发生身份验证错误,给函数提供的身份无效”。这个错误通常是由于安全更新或安全策略的要求,特别是涉及到凭据安全支持提供程序协议(CredSSP)...
在本教程中,我们将深入探讨Forms身份验证的工作原理、配置过程以及相关的代码实现。 1. **Forms身份验证概述** Forms身份验证是ASP.NET中的默认身份验证方法,适合不需要域控制器或活动目录的环境。它通过...
为了深入了解IIS 6.0的身份验证,可以通过观看"msft110905vxpm.wmv"这个视频文件,它可能包含详细的演示和讲解,帮助你更好地理解和配置IIS的身份验证机制。 总之,理解并正确配置IIS 6.0的身份验证对于确保网站和...
根据提供的文件信息“下载增强型身份验证插件.txt”及其描述“虚拟化WEB登录下载增强型身份验证插件”,我们可以深入探讨相关知识点,包括增强型身份验证插件的重要性、工作原理以及如何在虚拟化环境中实施。...
在使用SMTP客户端发送邮件时,可能会遇到多种错误,特别是涉及到安全性和身份验证的问题。以下是一些常见的错误及其解决方案: 错误一:SMTP 服务器要求安全连接或客户端未通过身份验证(5.7.1 Client was not ...
4. **身份验证逻辑**:在应用程序启动时,通过读取类与加密狗通信,尝试获取必要的认证信息。如果成功,应用程序继续运行;如果失败,通常会显示错误信息并阻止程序的执行。 5. **异常处理**:在编程过程中,要处理...