CreateUserWizard控件的详细使用说明(2)

1.3.3  用户自动重定向来源页面

当用户通过页面Login.aspx中的表单成功登录后,将会自动地重定向回其请求的来源页面。另外,CreateUserWizard控件并不能自动地重定向到任何位置。如果你希望CreateUserWizard控件能像Login控件那样工作,则需要编写一定的代码。

代码清单1-19中的Login控件包含了一个用于连接到用户注册页面CreateUserWizard- Returen.aspx上的链接。在Page_Load()事件处理函数中,查询字符串参数ReturnUrl将被添加到该注册页面的链接上。

代码清单1-19  LoginReturn.aspx

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!Page.IsPostBack)

        {

            string dest = Request.QueryString["ReturnUrl"];

            Login1.CreateUserUrl = "~/CreateUserWizardReturn.aspx?ReturnUrl=" + Server.UrlEncode(dest);

        }

    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >

<head id="Head1" runat="server">

    <title>Login Return</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <asp:Login

        id="Login1"

        CreateUserText="Register"

        CreateUserUrl="~/CreateUserWizardReturn.aspx"

        Runat="server" />

    </div>

    </form>

</body>

</html>

在使用代码清单1-19中的页面之前,需要将该页面重命名为Login.aspx。如果未认证用户访问了需要认证才能访问的页面,那么该用户访问请求就会被自动重定向到页面Login.aspx上,并且ReturnUrl参数也会自动添加到页面Login.aspx的访问路径之后。

代码清单1-20中的页面包含了一个CreateUserWizard控件,以及一个名为Page_Load()的事件处理函数。查询字符串参数ReturnUrl的值用来指定重定向时用户将会返回的原始请求页。

代码清单1-20  CreateUserWizardReturn.aspx

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    void Page_Load()

    {

        if (!Page.IsPostBack)

        {

            string dest = "~/Default.aspx";

            if (!String.IsNullOrEmpty(Request.QueryString["ReturnURL"]))

                dest = Request.QueryString["ReturnURL"];

            CreateUserWizard1.ContinueDestinationPageUrl = dest;

        }

    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >

<head id="Head1" runat="server">

    <title>CreateUserWizard Return</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <asp:CreateUserWizard

        id="CreateUserWizard1"

        Runat="server" />

    </div>

    </form>

</body>

</html>

From:

http://rusti.blogbus.com/logs/38025641.html

posted @ 2010-12-21 11:30  Ethan Shan  阅读(1347)  评论(0编辑  收藏  举报