FormsAuthenticationConfiguration 类
为 ASP.NET 应用程序配置 Forms 身份验证。
语法
class FormsAuthenticationConfiguration : EmbeddedObject
方法
此类不包含任何方法。
属性
下表列出了 FormsAuthenticationConfiguration
类公开的属性。
名称 | 描述 |
---|---|
Cookieless |
一个读/写 sint32 枚举,该枚举指定 Forms 身份验证是否应使用 Cookie。 后文的“备注”部分列出了可能的值。 |
Credentials |
一个 FormsAuthenticationCredentials 值,该值包含要在 Forms 身份验证期间使用的用户名和密码集合。 注意:如果需要安全性,应使用替代方法来存储用户名和密码(例如,数据库存储)。 如果决定使用此集合,则应在 FormsAuthenticationCredentials 类的 PasswordFormat 属性中指定加密格式。 |
DefaultUrl |
一个读/写非空 string 值,该值指定在身份验证后将请求定向到的默认 URL。 默认值为“default.aspx”。 |
Domain |
一个读/写 string 值,该值指定要使用 Forms 身份验证 Cookie 发送的域名。 默认值为 ""。 对于 Forms 身份验证 Cookie,此设置优先于 HttpCookiesSection 类的 Domain 属性中的设置。 |
EnableCrossAppRedirects |
一个读/写 boolean 值。 如果经过身份验证的用户可以重定向到其他应用程序中的 URL,则为 true ;否则为 false 。 默认为 false 。 如果此属性为 true ,则执行重定向;否则,浏览器将重定向到 DefaultUrl 属性中定义的页面。 注意:在多个 ASP.NET 应用程序中启用 Forms 身份验证时,用户无需在切换应用程序时重新进行身份验证。 有关详细信息,请参阅《跨应用程序 Forms 身份验证》。 |
LoginUrl |
一个非空读/写 string 值,该值指定在未进行身份验证时或不存在有效的身份验证 Cookie 时将请求重定向的 URL。 默认值为“login.aspx”。 |
Name |
一个非空读/写 string 值,指定用于请求身份验证的 HTTP Cookie 的名称。 默认值为“.ASPXAUTH”。 |
Path |
一个非空读/写 string 值,指定用于身份验证的 HTTP Cookie 的路径。 路径随身份验证 Cookie 本身一起传输。 默认值为“/”,表示 Web 应用程序根目录。 |
Protection |
一个读/写 sint32 值,该值指定用于 Cookie 的加密方法。 后文的“备注”部分列出了可能的值。 |
RequireSSL |
一个读/写 boolean 值。 如果身份验证需要安全套接字层 (SSL) 连接,则为 true ;否则为 false 。 默认为 false 。 如果此属性为 true ,则 Web 应用程序将拒绝不使用 SSL 连接的所有 Forms 身份验证请求。 |
SlidingExpiration |
一个读/写 boolean 值。 如果身份验证 Cookie 的过期时间设置为当前日期和时间加上指定值(Timeout 属性中的分钟数),则为 true ;否则为 false 。 默认为 true 。如果为 true ,在 Timeout 中的值还剩不到一半并且用户仍在主动使用应用程序的情况下,Cookie 的到期日期和时间将自动重置。 如果为 false ,Cookie 在经过 Timeout 属性中指定的时间间隔后自动超时。 |
Timeout |
一个读/写 datetime 值,该值指定身份验证过期的时间。 默认为 30 分钟。 |
子类
此类不包含子类。
注解
此类的实例包含在 AuthenticationSection 类的 Forms
属性中。
下表列出了 Cookieless
属性的可能值。 默认值为 3 (UseDeviceProfile
)。
值 | 关键字 | 说明 |
---|---|---|
0 | UseUri |
指定调用功能使用查询字符串存储标识符,无论浏览器或设备是否支持 Cookie。 |
1 | UseCookies |
指定无论浏览器或设备是否支持 Cookie,都使用 Cookie 来保存用户数据。 |
2 | AutoDetect |
指定由 ASP.NET 确定请求浏览器或设备是否支持 Cookie。 如果浏览器或设备支持 Cookie,则请求功能使用 Cookie 来保存用户数据;否则,请求功能将使用查询字符串中的标识符。 如果浏览器或设备支持 Cookie,但当前已禁用 Cookie,则请求功能仍将使用 Cookie。 |
3 | UseDeviceProfile |
指定由 ASP.NET 根据 System.Web.Configuration.HttpCapabilitiesBase 类 的 Cookies 属性确定是否使用 Cookie。 如果设置表明浏览器或设备支持 Cookie,则请求功能使用 Cookie;否则,请求功能将使用查询字符串中的标识符。 |
下表列出了 Protection
属性的可能值。 默认值为 0 (All
)。
值 | 关键字 | 说明 |
---|---|---|
0 | All |
指定应用程序同时使用数据验证和加密来帮助保护 Cookie。 此选项使用 MachineKeySection 类中指定的数据验证算法。 如果可用且密钥长度至少为 48 字节,则应用程序使用三重数据加密标准(三重 DES)进行加密。 注意:这是推荐的设置。 为了改进 cookie 保护,可能还需要将 RequireSSL 属性设置为 true 。 |
1 | None |
指定禁用加密和验证。 此设置适用于安全要求较低的站点,这些站点仅将 Cookie 用于个性化。 应避免采用此方式使用 Cookie;但是,这是在使用 .NET Framework 启用个性化时最节省资源的一种方式。 |
2 | Encryption |
指定使用三重 DES 或 DES 加密 Cookie。 使用此设置时,不会对 Cookie 执行数据验证,因此它们容易受到纯文本安全攻击。 |
3 | Validation |
指定应用程序会使用验证方案验证加密 Cookie 的内容在传输过程是否未更改。 创建 Cookie 的方法是:将验证密钥与 Cookie 数据连接,计算消息验证代码 (MAC) 并将 MAC 追加到传出 Cookie 的后面。 |
示例
以下示例显示默认网站的 Forms 身份验证设置。
' Connect to the WMI WebAdministration namespace.
Set oWebAdmin = GetObject("winmgmts:root\WebAdministration")
' Get the authentication section.
Set oSite = oWebAdmin.Get("Site.Name='Default Web Site'")
oSite.GetSection "AuthenticationSection", oAuthSection
' Assign the Forms property to a variable.
Set oFormsAuthConfig = oAuthSection.Forms
' Display the Forms authentication settings.
WScript.Echo "Forms Authentication Settings"
WScript.Echo "-----------------------------"
WScript.Echo "Cookieless: [ " & _
CookielessText(oFormsAuthConfig.Cookieless)& " ]"
WScript.Echo "Default Url: [ " & _
oFormsAuthConfig.DefaultUrl& " ]"
WScript.Echo "Domain: [ " & oFormsAuthConfig.Domain& " ]"
WScript.Echo "EnableCrossAppRedirects: [ " & _
oFormsAuthConfig.EnableCrossAppRedirects& " ]"
WScript.Echo "LoginUrl: [ " & _
oFormsAuthConfig.LoginUrl & " ]"
WScript.Echo "Name: [ " & oFormsAuthConfig.Name& " ]"
WScript.Echo "Path: [ " & oFormsAuthConfig.Path& " ]"
WScript.Echo "Protection: [ " & _
ProtectionText(oFormsAuthConfig.Protection)& " ]"
WScript.Echo "RequireSSL: [ " & _
oFormsAuthConfig.RequireSSL& " ]"
WScript.Echo "SlidingExpiration: [ " & _
oFormsAuthConfig.SlidingExpiration& " ]"
WScript.Echo "Timeout: [ " & oFormsAuthConfig.Timeout& " ]"
' Call a sub to display the credentials information.
DisplayCredentials(oFormsAuthConfig.Credentials)
' Convert the Cookieless enumeration values to text.
Function CookielessText(enumValue)
Select Case enumValue
Case 0
CookielessText = "UseUri"
Case 1
CookielessText = "UseCookies"
Case 2
CookielessText = "AutoDetect"
Case 3
CookielessText = "UseDeviceProfile"
Case Else
CookielessText = "Undefined enumeration value."
End Select
End Function
' Convert the Protection enumeration values to text.
Function ProtectionText(enumValue)
Select Case enumValue
Case 0
ProtectionText = "All"
Case 1
ProtectionText = "None"
Case 2
ProtectionText = "Encryption"
Case 3
ProtectionText = "Validation"
Case Else
ProtectionText = "Undefined enumeration value."
End Select
End Function
' Display the Forms authentication credentials.
Sub DisplayCredentials(FA_Credentials)
WScript.Echo vbCrLf & "Forms Authentication Credentials"
WScript.Echo "--------------------------------"
' Display the password encryption format.
WScript.Echo "Password Format: " & _
PwdFormatText(FA_Credentials.PasswordFormat) & VbCrLf
' Display the Forms authentication users and passwords.
For Each FormsAuthUser In FA_Credentials.Credentials
WScript.Echo " Name: [ " & FormsAuthUser.Name & " ]"
WScript.Echo "Password: [ " & _
FormsAuthUser.Password& " ]"
WScript.Echo
Next
End Sub
' Convert the PasswordFormat enumeration values to text.
Function PwdFormatText(enumValue)
Select Case enumValue
Case 0
PwdFormatText = "Clear"
Case 1
PwdFormatText = "SHA1"
Case 2
PwdFormatText = "MD5"
Case Else
PwdFormatText = "Undefined enumeration value."
End Select
End Function
继承层次结构
FormsAuthenticationConfiguration
要求
类型 | 描述 |
---|---|
客户端 | - IIS 7.0(在 Windows Vista 上) - IIS 7.5(在 Windows 7 上) - IIS 8.0(在 Windows 8 上) - IIS 10.0(在 Windows 10 上) |
服务器 | - IIS 7.0(在 Windows Server 2008 上) - IIS 7.5(在 Windows Server 2008 R2 上) - IIS 8.0(在 Windows Server 2012 上) - IIS 8.5(在 Windows Server 2012 R2 上) - IIS 10.0(在 Windows Server 2016 上) |
产品 | - IIS 7.0、IIS 7.5、IIS 8.0、IIS 8.5、IIS 10.0 |
MOF 文件 | WebAdministration.mof |
另请参阅
System.Web.Configuration.AuthenticationModeSystem.Web.Configuration.FormsAuthenticationConfigurationSystem.Web.Configuration.HttpCapabilitiesBaseAuthenticationSection 类
EmbeddedObject 类
FormsAuthenticationCredentials 类
FormsAuthenticationUser 类
MachineKeySection 类
跨应用程序 Forms 身份验证
CIM_DATETIME