FormsAuthentication.RedirectFromLoginPage 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將已驗證的使用者重新導向回原始要求的 URL 或預設 URL。
多載
| RedirectFromLoginPage(String, Boolean) |
將已驗證的使用者重新導向回原始要求的 URL 或預設 URL。 |
| RedirectFromLoginPage(String, Boolean, String) |
使用窗體驗證 Cookie 的指定 Cookie 路徑,將已驗證的使用者重新導向回原始要求的 URL 或預設 URL。 |
RedirectFromLoginPage(String, Boolean)
將已驗證的使用者重新導向回原始要求的 URL 或預設 URL。
public:
static void RedirectFromLoginPage(System::String ^ userName, bool createPersistentCookie);
public static void RedirectFromLoginPage (string userName, bool createPersistentCookie);
static member RedirectFromLoginPage : string * bool -> unit
Public Shared Sub RedirectFromLoginPage (userName As String, createPersistentCookie As Boolean)
參數
- userName
- String
已驗證的用戶名稱。
- createPersistentCookie
- Boolean
true 建立持久 Cookie(跨瀏覽器會話儲存的 Cookie):否則,false。
例外狀況
查詢字串中指定的傳回 URL 包含 HTTP: 或 HTTPS:以外的通訊協定。
範例
下列程式代碼範例會將已驗證的使用者重新導向至原始要求的網址或 DefaultUrl。 程式代碼範例會使用 ASP.NET 成員資格來驗證使用者。 如需 ASP.NET 成員資格的詳細資訊,請參閱 使用成員資格管理使用者。
重要
此範例包含接受使用者輸入的文本框,這是潛在的安全性威脅。 根據預設,ASP.NET 網頁會驗證使用者輸入不包含腳本或 HTML 元素。 如需詳細資訊,請參閱 文稿惡意探索概觀。
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public void Login_OnClick(object sender, EventArgs args)
{
if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))
FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);
else
Msg.Text = "Login failed. Please check your user name and password and try again.";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Login</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Login</h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
<asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
<asp:CheckBox id="NotPublicCheckBox" runat="server" />
Check here if this is <span style="text-decoration:underline">not</span> a public computer.
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Public Sub Login_OnClick(sender As Object, args As EventArgs)
If (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) Then
FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked)
Else
Msg.Text = "Login failed. Please check your user name and password and try again."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Login</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Login</h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
<asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
<asp:CheckBox id="NotPublicCheckBox" runat="server" />
Check here if this is <span style="text-decoration:underline">not</span> a public computer.
</form>
</body>
</html>
備註
RedirectFromLoginPage 方法會使用 ReturnURL 變數名稱,重新導向至查詢字串中指定的 URL。 例如,在 URL http://www.contoso.com/login.aspx?ReturnUrl=caller.aspx中,RedirectFromLoginPage 方法會重新導向至傳回 URL caller.aspx。 如果 ReturnURL 變數不存在,RedirectFromLoginPage 方法會重新導向至 DefaultUrl 屬性中的URL。
當瀏覽器重新導向至登入頁面時,ASP.NET 會自動新增傳回URL。
根據預設,ReturnUrl 變數必須參考目前應用程式中的頁面。 如果 ReturnUrl 參考不同應用程式或不同伺服器上的頁面,RedirectFromLoginPage 方法會重新導向至 DefaultUrl 屬性中的 URL。 如果您想要允許重新導向至目前應用程式以外的頁面,您必須使用 表單 組態專案的 enableCrossAppRedirects 屬性,將 EnableCrossAppRedirects 屬性設定為 true。
重要
將 EnableCrossAppRedirects 屬性設定為 true 以允許跨應用程式重新導向是潛在的安全性威脅。 如需詳細資訊,請參閱 EnableCrossAppRedirects 屬性。
如果 CookiesSupported 屬性是 true,而且 ReturnUrl 變數位於目前的應用程式中,或 EnableCrossAppRedirects 屬性是 true,則 RedirectFromLoginPage 方法會發出驗證票證,並使用 SetAuthCookie 方法將它放在預設 Cookie 中。
如果 CookiesSupportedfalse 且重新導向路徑是目前應用程式中的URL,則會發出票證作為重新導向URL的一部分。 如果 CookiesSupported 是 false,EnableCrossAppRedirects 是 true,而且重新導向 URL 不會參考目前應用程式中的頁面,則 RedirectFromLoginPage 方法會發出驗證票證,並將它放在 QueryString 屬性中。
另請參閱
適用於
RedirectFromLoginPage(String, Boolean, String)
使用窗體驗證 Cookie 的指定 Cookie 路徑,將已驗證的使用者重新導向回原始要求的 URL 或預設 URL。
public:
static void RedirectFromLoginPage(System::String ^ userName, bool createPersistentCookie, System::String ^ strCookiePath);
public static void RedirectFromLoginPage (string userName, bool createPersistentCookie, string strCookiePath);
static member RedirectFromLoginPage : string * bool * string -> unit
Public Shared Sub RedirectFromLoginPage (userName As String, createPersistentCookie As Boolean, strCookiePath As String)
參數
- userName
- String
已驗證的用戶名稱。
- createPersistentCookie
- Boolean
true 建立持久 Cookie(跨瀏覽器會話儲存的 Cookie):否則,false。
- strCookiePath
- String
窗體驗證票證的 Cookie 路徑。
例外狀況
查詢字串中指定的傳回 URL 包含 HTTP: 或 HTTPS:以外的通訊協定。
備註
RedirectFromLoginPage 方法會使用 ReturnURL 變數名稱,重新導向至查詢字串中指定的傳回 URL。 例如,在 URL http://www.contoso.com/login.aspx?ReturnUrl=caller.aspx中,RedirectFromLoginPage 方法會重新導向至傳回 URL caller.aspx。 如果 ReturnURL 變數不存在,RedirectFromLoginPage 方法會重新導向至 DefaultUrl 屬性中的URL。
當瀏覽器重新導向至登入頁面時,ASP.NET 會自動新增傳回URL。
根據預設,ReturnUrl 變數必須參考目前應用程式中的頁面。 如果 ReturnUrl 參考不同應用程式或不同伺服器上的頁面,RedirectFromLoginPage 方法會重新導向至 DefaultUrl 屬性中的 URL。 如果您想要允許重新導向至目前應用程式以外的頁面,您必須使用 表單 組態專案的 enableCrossAppRedirects 屬性,將 EnableCrossAppRedirects 屬性設定為 true。
重要
將 EnableCrossAppRedirects 屬性設定為 true 以允許跨應用程式重新導向是潛在的安全性威脅。 如需詳細資訊,請參閱 EnableCrossAppRedirects 屬性。
如果 CookiesSupported 屬性是 true,而且 ReturnUrl 變數是在目前應用程式中,或是 EnableCrossAppRedirects 屬性是 true,則 RedirectFromLoginPage 方法會發出驗證票證,並使用 SetAuthCookie 方法將它放在 strCookiePath 參數所指定的 Cookie 中。
如果 CookiesSupportedfalse 且重新導向路徑是目前應用程式中的URL,則會發出票證作為重新導向URL的一部分。 如果 CookiesSupported 是 false,EnableCrossAppRedirects 是 true,而且重新導向 URL 不會參考目前應用程式中的頁面,則 RedirectFromLoginPage 方法會發出驗證票證,並將它放在 QueryString 屬性中。