FormsAuthentication.RedirectFromLoginPage 方法

定義

將已驗證的使用者重新導向回到原來要求的 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: 以外的通訊協定。

範例

下列程式碼範例會將已驗證的使用者重新導向至原始要求的 URL 或 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.aspxReturnURL如果變數不存在, RedirectFromLoginPage 方法會重新導向至 屬性中的 DefaultUrl URL。

當瀏覽器重新導向至登入頁面時,ASP.NET 會自動新增傳回 URL。

根據預設, ReturnUrl 變數必須參考目前應用程式內的頁面。 如果 ReturnUrl 參考不同應用程式或不同伺服器上的頁面, RedirectFromLoginPage 則方法會重新導向至 屬性中的 DefaultUrl URL。 如果您想要允許重新導向至目前應用程式外部的頁面,您必須使用 enableCrossAppRedirects 表單組態專案的 屬性將 屬性設定 EnableCrossAppRedirectstrue

重要

EnableCrossAppRedirects 屬性設定為 true ,以允許跨應用程式重新導向是潛在的安全性威脅。 如需詳細資訊,請參閱 EnableCrossAppRedirects 屬性 (Property)。

CookiesSupported如果 屬性為 true ,而且 ReturnUrl 變數位於目前應用程式內或 EnableCrossAppRedirects 屬性為 true ,則 RedirectFromLoginPage 方法會發出驗證票證,並使用 方法將它放在預設 Cookie SetAuthCookie 中。

如果 CookiesSupportedfalse 且重新導向路徑是目前應用程式中的 URL,則會將票證發出為重新導向 URL 的一部分。 如果 CookiesSupported 為 ,則為 false trueEnableCrossAppRedirects 且重新導向 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.aspxReturnURL如果變數不存在, RedirectFromLoginPage 方法會重新導向至 屬性中的 DefaultUrl URL。

當瀏覽器重新導向至登入頁面時,ASP.NET 會自動新增傳回 URL。

根據預設, ReturnUrl 變數必須參考目前應用程式內的頁面。 如果 ReturnUrl 參考不同應用程式或不同伺服器上的頁面,方法 RedirectFromLoginPage 會重新導向至 屬性中的 DefaultUrl URL。 如果您想要允許重新導向至目前應用程式外部的頁面,您必須使用 enableCrossAppRedirects 表單組態專案的 屬性將 屬性設定 EnableCrossAppRedirectstrue

重要

EnableCrossAppRedirects 屬性設定為 true ,以允許跨應用程式重新導向是潛在的安全性威脅。 如需詳細資訊,請參閱 EnableCrossAppRedirects 屬性 (Property)。

CookiesSupported如果 屬性為 true ,而且 ReturnUrl 變數位於目前應用程式內或 EnableCrossAppRedirects 屬性為 true ,則 RedirectFromLoginPage 方法會發出驗證票證,並使用 方法將 strCookiePath 它放在 參數 SetAuthCookie 指定的 Cookie 中。

如果 CookiesSupportedfalse 且重新導向路徑是目前應用程式中的 URL,則會將票證發出為重新導向 URL 的一部分。 如果 CookiesSupported 為 ,則為 false trueEnableCrossAppRedirects 且重新導向 URL 不會參考目前應用程式內的頁面,則 RedirectFromLoginPage 方法會發出驗證票證,並將它放在 屬性中 QueryString

另請參閱

適用於