asp.net

FormsAuthentication.RedirectFromLoginPage 方法 (String, Boolean)

2011-04-09

 

命名空间:  System.Web.Security
程序集:  System.Web(在 System.Web.dll 中)

 

将经过身份验证的用户重定向回最初请求的 URL 或默认 URL。

 public static void RedirectFromLoginPage(
string userName,
bool createPersistentCookie )

参数

userName
类型:System.String

经过身份验证的用户名。

createPersistentCookie
类型:System.Boolean

若要创建持久 Cookie(跨浏览器会话保存的 Cookie),则为 true;否则为 false

 

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。如果希望允许重定向到当前应用程序以外的页,必须使用 forms 配置元素的 enableCrossAppRedirects 属性 (Attribute) 将 EnableCrossAppRedirects 属性 (Property) 设置为 true

该示例包含一个接受用户输入的文本框,而接受用户输入会导致潜在的安全威胁。默认情况下,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>