FormsAuthentication.RedirectFromLoginPage无效

时间:2009-04-14 09:34:16

标签: asp.net

我正在使用LoginPage.Everything与数据库或C#代码相关的工作正常但在成功登录后我无法重定向到Home.aspx,我错过了什么?请帮忙。 的代码:

Web.Config中:

           

</authentication>
<authorization>
  <deny users="*"/>

</authorization>

C#代码:

protected void Button1_Click(object sender, EventArgs e)
    {
        string source = "server=localhost\\sqlexpress;Database=LogInDB;Trusted_Connection=True";
        SqlConnection con = new SqlConnection(source);
        con.Open();
        SqlCommand cmd = new SqlCommand("proc_LogIn", con);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("@ID", SqlDbType.Int).Value = TextBox1.Text;
        cmd.Parameters.Add("@Password", SqlDbType.VarChar).Value = TextBox2.Text;
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.Read())
        {
            FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, false);
                    }
        else
        {
            Response.Write("Invalid credentials");
        }

    }

3 个答案:

答案 0 :(得分:5)

应为<deny users="?"/>

* means all 
? means unauthenticated

答案 1 :(得分:1)

<authentication mode="Forms">
            <forms loginUrl="login.aspx" defaultUrl="home.aspx" slidingExpiration="true" timeout="20" name=".Auth" protection="All">
            </forms>
        </authentication>

除了执行Mladen提到的设置之外,在调用该方法之前,您必须在web.config中进行这些设置。

答案 2 :(得分:0)

在我的情况下,尽管在我的web.config中有两个代码都提供了答案,但是FormsAuthentication.RedirectFromLoginPage仍在导航回到loginUrl

这是这两个线程(12)中描述的一个已知问题。正如那里的建议,结合使用authCookie和redirect对我来说很有效。

VB.NET代码:

    FormsAuthentication.SetAuthCookie(txtUsername.Value, False)
    Response.Redirect(FormsAuthentication.DefaultUrl, False)