FormsAuthentication.RedirectFromLoginPage 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将经过身份验证的用户重定向回最初请求的 URL 或默认 URL。
重载
RedirectFromLoginPage(String, Boolean) |
将经过身份验证的用户重定向回最初请求的 URL 或默认 URL。 |
RedirectFromLoginPage(String, Boolean, String) |
使用 Forms 身份验证 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
若要创建持久 Cookie(跨浏览器会话保存的 Cookie),则为 true
;否则为 false
。
例外
查询字符串中指定的返回 URL 包含 HTTP: 或 HTTPS: 以外的协议。
示例
下面的代码示例将验证的用户重定向到最初请求的 URL 或 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
forms 配置元素的 属性将 属性设置为 EnableCrossAppRedirectstrue
。
重要
将 EnableCrossAppRedirects 属性设置为 true
以允许跨应用程序重定向是潜在的安全威胁。 有关更多信息,请参见 EnableCrossAppRedirects 属性。
CookiesSupported如果 属性为 true
,并且ReturnUrl
变量位于当前应用程序内,或者 EnableCrossAppRedirects 属性为 true
,则 RedirectFromLoginPage 方法会颁发身份验证票证,并使用 方法将其置于默认 Cookie SetAuthCookie 中。
如果 CookiesSupported 为 , false
并且重定向路径指向当前应用程序中的 URL,则票证将作为重定向 URL 的一部分颁发。 如果 CookiesSupported 为 false
、 EnableCrossAppRedirects 为 true
,并且重定向 URL 不引用当前应用程序中的页面,则 RedirectFromLoginPage 方法会发出身份验证票证并将其置于 属性中 QueryString 。
另请参阅
适用于
RedirectFromLoginPage(String, Boolean, String)
使用 Forms 身份验证 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
若要创建持久 Cookie(跨浏览器会话保存的 Cookie),则为 true
;否则为 false
。
- strCookiePath
- String
Forms 身份验证票证的 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
forms 配置元素的 属性将 属性设置为 EnableCrossAppRedirectstrue
。
重要
将 EnableCrossAppRedirects 属性设置为 true
以允许跨应用程序重定向是潜在的安全威胁。 有关更多信息,请参见 EnableCrossAppRedirects 属性。
CookiesSupported如果 属性为 true
,并且ReturnUrl
变量位于当前应用程序内,或者EnableCrossAppRedirects属性为 true
,则RedirectFromLoginPage该方法会发出身份验证票证,并使用 方法将其置于 参数strCookiePath
SetAuthCookie指定的 Cookie 中。
如果 CookiesSupported 为 , false
并且重定向路径指向当前应用程序中的 URL,则票证将作为重定向 URL 的一部分颁发。 如果 CookiesSupported 为 false
、 EnableCrossAppRedirects 为 true
,并且重定向 URL 不引用当前应用程序中的页面,则 RedirectFromLoginPage 方法会发出身份验证票证并将其置于 属性中 QueryString 。