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  
  

继承层次结构

EmbeddedObject

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