Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.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
C# 使用c在asp.net和sql server中登录页面#_C#_Asp.net - Fatal编程技术网

C# 使用c在asp.net和sql server中登录页面#

C# 使用c在asp.net和sql server中登录页面#,c#,asp.net,C#,Asp.net,我的项目中有一个正常工作的登录页面。我的数据库(sql server)有4个字段,其中最后一个字段是“权限”,它有2个值:Admin、User 我不知道我应该如何配置我的代码,以便在登录后,如果您是管理员,将您转到管理员页面,否则转到用户页面。这意味着如果数据库中用户的“权限”字段为“管理员”,则转移到管理员面板或页面 我的C#代码是: using System; using System.Collections; using System.Configuration; using System

我的项目中有一个正常工作的登录页面。我的数据库(sql server)有4个字段,其中最后一个字段是“权限”,它有2个值:Admin、User

我不知道我应该如何配置我的代码,以便在登录后,如果您是管理员,将您转到管理员页面,否则转到用户页面。这意味着如果数据库中用户的“权限”字段为“管理员”,则转移到管理员面板或页面

我的C#代码是:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class content_btn1 : System.Web.UI.Page
{
    protected void btnlogin_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["myconectionstring"].ConnectionString);
        con.Open();
        SqlCommand cmd = new SqlCommand("select * from users_table where Name =@username and Password=@password", con);
        cmd.Parameters.AddWithValue("@username", txtuser.Text);
        cmd.Parameters.AddWithValue("@password", txtpassword.Text);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();

        da.Fill(dt);
        if (dt.Rows.Count > 0)
        {  
            Response.Redirect("btn2.aspx");
        }
        else
        {
            lbllogindetails.Text = "Invalid User or Password !!";
        }
    }
}

您可以在if条件中编写此代码

 if (dt.Rows.Count > 0)
        { 
       if(dt.Rows[0]["permission"] == "Admin")
        {
         Response.Redirect("admin.aspx");
        }
        else
        {
         Response.Redirect("normal.aspx");
        }
}

您可以在if条件中编写此代码

 if (dt.Rows.Count > 0)
        { 
       if(dt.Rows[0]["permission"] == "Admin")
        {
         Response.Redirect("admin.aspx");
        }
        else
        {
         Response.Redirect("normal.aspx");
        }
}

为什么不直接遍历数据表行并确定它们具有哪些访问权限?如果有两行呢?如果你得到的不是“用户”|“管理员”怎么办。我会将该字段更改为一点点,然后选择它。不过,aspx项目的登录控制相当健壮。您可以为各种组设置哪些页面可见以及登录时发生的情况。这是学校的项目吗?否则,您可能需要查看FormAuthentication、ASP.NET通用提供程序、简单成员资格提供程序和ASP.NET标识。它们比您自己手动进行身份验证更加可靠和安全。FWIW答案是否仍然无法解决如果有多行发生的问题?例如,我可以在数据库中同时使用这两个选项吗?在[username]+[password]上是否有保证返回1行的约束?对if(dt.Rows.Count==1)的简单更改将解决该特定问题/JS为什么不循环遍历数据表行并确定它们具有哪些访问权限?如果有两行呢?如果你得到的不是“用户”|“管理员”怎么办。我会将该字段更改为一点点,然后选择它。不过,aspx项目的登录控制相当健壮。您可以为各种组设置哪些页面可见以及登录时发生的情况。这是学校的项目吗?否则,您可能需要查看FormAuthentication、ASP.NET通用提供程序、简单成员资格提供程序和ASP.NET标识。它们比您自己手动进行身份验证更加可靠和安全。FWIW答案是否仍然无法解决如果有多行发生的问题?例如,我可以在数据库中同时使用这两个选项吗?在[username]+[password]上是否有保证返回1行的约束?对if(dt.Rows.Count==1)的简单更改将解决该特定问题/JS这部分代码不起作用:if(dt.Rows[0][“permission”]==“Admin”)这部分代码不起作用:if(dt.Rows[0][“permission”]==“Admin”)