-1

Webアプリケーションを作成し、adminstratorの場合はadmincpに、modratormanagerの場合はmodcpにログインしたいと思います。これはログインページのコードです:

protected void btnOk_Click(object sender, EventArgs e)
{
    try
    {
        string user_n = txtUser.Text;
        string pass_n = txtPass.Text;
        Int32 res = 0;


        DAL.DAL log = new DAL.DAL();
        res = log.login_user_form(user_n, pass_n);




        if (res == 1)
        { 

           if (user_n == "admin")
              {
                  Response.Redirect("manage/AdminPage.aspx");
              }
       else 
         {
            Response.Redirect("modcp/defult3.aspx");
        }


        }
        else
        {
            lblRes.Text = "error username or password";
        }
    }
    catch (Exception ex)
    {
        lblRes.Text = ex.ToString();
    }


}

そしてDAL層ではこのコード:

public Int32 login_user_form(String username, String password)
{
    int res = 0;
    con = new SqlConnection(strcon);
    SqlCommand cmd = new SqlCommand("EXEC chek_user '" + username + "' , '" + password + "'", con);

    try
    {
        con.Open();
        if (cmd.ExecuteScalar() == null)
        {
            res = 0;
        }

        else
        {
            res = 1;
        }

        con.Close();

    }
    catch (SqlException)
    {
        throw;
    }

    return res;
}

これが私のストアドプロシージャです:

@username nvarchar(50) , @password nvarchar(50)
AS
BEGIN

SET NOCOUNT ON;
    SELECT username_l1 , password_l1 
    FROM user_L1
    WHERE username_l1 = @username AND password_l1 = @password
END

この行なしで動作しているページlogin.aspxのこのタラ:

Response.Redirect("manage/AdminPage.aspx");

このコードをクリアして次のように記述した場合:

txtPass.Visible = false;
lblRes.Text = "mesesege";

それは正しく機能しますが、Response.Redirectがないのですが、そうではありませんか?

(レベルアクセスのための聖霊降臨祭のセッションがどのように機能するかわかりません)

4

1 に答える 1

0

Response.Redirect()実際には例外がスローされるため、try/catchから移動する必要があります。

コードが論理的に正しい場合でもResponse.Redirects、catchステートメントに飲み込まれてしまいます。

編集:

これはこの質問で説明されています。

于 2013-01-09T16:31:10.440 に答える