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 Web 網頁會驗證使用者輸入未包含指令碼或 HTML 項目。 如需詳細資訊,請參閱 Script Exploits Overview (指令碼攻擊概觀)。
<%@ 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 屬性 (Property)。
CookiesSupported如果 屬性為 true
,而且ReturnUrl
變數位於目前應用程式內或 EnableCrossAppRedirects 屬性為 true
,則RedirectFromLoginPage方法會發出驗證票證,並使用 方法將它放在預設 Cookie SetAuthCookie 中。
如果 CookiesSupported 是 false
且重新導向路徑是目前應用程式中的URL,則會將票證發出為重新導向URL的一部分。 如果 CookiesSupported 為 ,則為 false
true
,EnableCrossAppRedirects且重新導向 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 屬性 (Property)。
CookiesSupported如果 屬性為 true
,而且ReturnUrl
變數位於目前應用程式內或 EnableCrossAppRedirects 屬性為 true
,則RedirectFromLoginPage方法會發出驗證票證,並使用 方法將strCookiePath
它放在 參數SetAuthCookie指定的Cookie中。
如果 CookiesSupported 是 false
且重新導向路徑是目前應用程式中的URL,則會將票證發出為重新導向URL的一部分。 如果 CookiesSupported 為 ,則為 false
true
,EnableCrossAppRedirects且重新導向 URL 不會參考目前應用程式內的頁面,則RedirectFromLoginPage方法會發出驗證票證,並將它放在 屬性中QueryString。