Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 限制用户在未登录的情况下访问任何网页_Asp.net_Authentication - Fatal编程技术网

Asp.net 限制用户在未登录的情况下访问任何网页

Asp.net 限制用户在未登录的情况下访问任何网页,asp.net,authentication,Asp.net,Authentication,我希望任何未登录的用户都受到限制。 假设如果他们试图通过粘贴链接访问任何页面,他们仍然被重定向到登录页面 登录页面 protected void Page_Load(object sender, EventArgs e) { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString); con.Open();

我希望任何未登录的用户都受到限制。 假设如果他们试图通过粘贴链接访问任何页面,他们仍然被重定向到登录页面

登录页面

protected void Page_Load(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString);
    con.Open();

    SqlCommand cmd = new SqlCommand("select * from Employee where UName =@username and UPassword=@password", con);
    cmd.Parameters.AddWithValue("@username", UName.Text);
    cmd.Parameters.AddWithValue("@password", UPassword.Text);

    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    da.Fill(dt);
    if (dt.Rows.Count > 0)
    {
        Response.Redirect("Details.aspx");
    }
}

我认为使用

可以通过asp.net中的会话来实现:

在用户成功登录后创建一个会话,如下所示

登录页面:

包括下面的名称空间

使用System.Web.SessionState

用户输入用户名和密码后:

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString);
    con.Open();

    SqlCommand cmd = new SqlCommand("select * from Employee where UName =@username and UPassword=@password", con);
    cmd.Parameters.AddWithValue("@username", UName.Text);
    cmd.Parameters.AddWithValue("@password", UPassword.Text);

    //Blah,Blah,Blah...
 if(user=authenticated user) //your condition goes here
   {
       session["Sid"]=Session.SessionID;
       //Blah,Blah,Blah...
   }
现在,在要保护的每个页面中,都应该有以下内容:

protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Sid"] == null)
            {
                Response.Redirect("Login.aspx");

            }
        }
web.config中

<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="120" />


我希望这有帮助…

我不想单独限制每个文件夹。因此,您可以使用第二个代码段(所有页面都使用
)。我如何知道用户已通过身份验证?没有会话这是asp.net中的传统方式吗?还有没有别的好办法,不用治疗?
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="120" />