表單驗證公用程式
更新:2007 年 11 月
若要管理表單驗證,您可以使用 FormsAuthentication 類別的靜態方法。下表列出各種方法。
方法 |
描述 |
---|---|
嘗試驗證已設定的認證存放區內的認證,需給定提供的認證。 |
|
傳回 FormsAuthenticationTicket 類別的執行個體,指定取自 HTTP Cookie 的加密驗證票證。 |
|
指定 FormsAuthenticationTicket,產生包含加密驗證票證 (適用於 HTTP Cookie 中) 的字串。 |
|
擷取加密驗證 Cookie 做為 HttpCookie 執行個體。Cookie 不會加入 Cookies 集合。 |
|
針對造成重新導向至登入頁面的要求,傳回重新導向的 URL。 |
|
指定識別雜湊類型的密碼和字串,產生適用儲存在組態檔中的雜湊密碼。 |
|
讀取目前應用程式的組態設定,並取得 Cookie 值和加密值,以初始化 FormsAuthentication 類別。 |
|
將已驗證的使用者重新導向至原始要求的 URL。 |
|
更新 FormsAuthenticationTicket 的滑動期限 (Sliding Expiration)。 |
|
建立驗證票證,並將其附加到輸出回應的 Cookie 集合。 |
|
將驗證 Cookie 或 URL 文字設定為空值,以移除驗證票證。如此會移除持久性和工作階段 Cookie。 |
下表列出有助於管理表單驗證票證的屬性。
屬性 |
描述 |
---|---|
取得目前應用程式的 Cookie 名稱。 |
|
取得目前應用程式的 Cookie 路徑。 |
|
取得表示應用程式是否設定為支援 Cookieless 表單驗證的值。 |
|
取得表示應用程式是否針對 Cookieless 表單驗證進行設定的值。 |
|
取得表單驗證 Cookie 的定義域值。 |
|
取得如果不指定重新導向 URL,表單驗證則會重新導向的 URL。 |
|
取得表單驗證重新導向的登入頁面 URL 值。 |
|
取得表示 Cookie 是否必須使用 Secure Sockets Layer (SSL) 傳輸的值。 |
|
取得一個指示是否啟用變動到期的值。 |
|
取得表示在表單驗證票證未尚儲存在 Cookie 中時,是否可以將已驗證的使用者重新導向至其他 Web 應用程式中的 URL。 |
您可以使用 FormsAuthentication 類別的方法自訂表單驗證的運作方式。您也可以在登入網頁處理常式中使用它們,避免必須撰寫重新導向的程式碼。下列程式碼範例示範驗證使用者並重新導向至要求網頁的 ASP.NET Web 網頁。
<html>
<head>
<script language="VB" runat=server>
Sub SubmitBtn_Click(Source As Object, e As EventArgs)
' Try to authenticate credentials supplied by user.
If FormsAuthentication.Authenticate _
(UserName.Value, UserPassword.Value) Then
Dim ticket As New FormsAuthenticationTicket _
(UserName.Value, False, 5000)
FormsAuthentication.RedirectFromLoginPage _
(UserName.Value, Persist.Checked)
End If
End Sub
</script>
</head>
<body>
<form method=post runat=server>
<table>
<tr>
<td>Name:</td>
<td><input type="text" id="UserName" runat=server/>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" id="UserPassword" runat=server/>
</td>
</tr>
</table>
<input type="checkbox" id="Persist" runat=server/>
<!-- Use persistent cookie -->
<br>
<input type="submit" OnServerClick="SubmitBtn_Click" runat=server/>
</form>
</body>
</html>
<html>
<head>
<script language="C#" runat=server>
void SubmitBtn_Click(Object Source, EventArgs e)
{
// Try to authenticate credentials supplied by user.
if (FormsAuthentication.Authenticate(UserName.Value,
UserPassword.Value))
{
FormsAuthenticationTicket ticket = new
FormsAuthenticationTicket(UserName.Value, false, 5000);
FormsAuthentication.RedirectFromLoginPage(UserName.Value,
Persist.Checked);
}
}
</script>
</head>
<body>
<form method=post runat=server>
<table>
<tr>
<td>Name:</td>
<td><input type="text" id="UserName" runat=server/></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" id="UserPassword" runat=server/>
</td>
</tr>
</table>
<input type="checkbox" id="Persist" runat=server/>
<!-- Use persistent cookie. -->
<br>
<input type="submit" OnServerClick="SubmitBtn_Click" runat=server/>
</form>
</body>
</html>
需要更詳細控制 HTTP Cookie 屬性的應用程式,可以建構票證並在自訂程式碼中執行重新導向。在這些情況中,您應該使用 FormsAuthentication 類別的加密方法加密驗證票證。