使用表单身份验证类进行身份验

时间:2010-07-08 11:44:41

标签: asp.net

我正在开发用户身份验证网站。 我有一个登录页面,“Login.aspx”,其中我提供了一个登录控件。 在web.config中,

<authentication mode="Forms">
        <forms name=".AuthenticationCookie" loginUrl="Login.aspx"  protection="All" timeout="60" path="/">
            <credentials passwordFormat="Clear">
                <user name="Jack" password="Jerry"/>
            </credentials>
        </forms>
    </authentication>
    <authorization>
        <deny users="*"/>
    </authorization>

在login.aspx.cs页面中, 我提供了,

 protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
    {
        if (FormsAuthentication.Authenticate(Login1.UserName,Login1.Password))
        {
             FormsAuthentication.SetAuthCookie(Login1.UserName,true);
            Label1.Text = "Login Successful";
            Login1.InstructionText = "";
            FormsAuthentication.RedirectFromLoginPage(Login1.UserName, true);
            Response.Redirect("Success.aspx")

        }
        else
        {
            Label1.Text = "You are not an authentic user";
        }


    }
}

但是,虽然执行而不是成功.aspx 使用网址http://localhost/Login.aspx?ReturnUrl=%2fSuccess.aspx

为什么会这样?

1 个答案:

答案 0 :(得分:1)

如果要自己设置表单auth cookie并根据ReturnUrl查询字符串参数正确重定向,则应查看FormsAuthentication.RedirectFromLoginPage方法。在您的示例中,它将是:

FormsAuthentication.RedirectFromLoginPage(Login1.UserName, true);

该方法设置相应的Forms auth cookie / ticket,然后根据ReturnUrl参数的存在与否重定向。 (如果不存在,则转到配置的默认页面。)

希望这有帮助,