一个登录2个用户 [英] one login for 2 users

查看:57
本文介绍了一个登录2个用户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





i为用户和管理员创建一个登录表单



登录按钮代码



 受保护  void  Button1_Click( object  sender,EventArgs e)
{
if (cd .Loginuser(UserName.Text,Password.Text))
{
Session [ UserID2 ] = cd.Loginuser(UserName.Text,Password.Text);
会话[ Login4] = UserName.Text;
会话[ Login5] = Password.Text;
Lgin.Text =( 登录成功);
Response.Redirect( WebForm1.aspx);



Lgin.Text =( 密码不正确< /跨度>);
}

else if (cd.Loginuser(UserName。 Text,Password.Text))
{
Session [ UserID] = cd.Loginuser(UserName.Text,Password.Text);
会话[ Login2] = UserName.Text;
会话[ Login3] = Password.Text;
Lgin.Text =( 登录成功);
Response.Redirect( Home.aspx);

Lgin.Text =( 密码不正确);
}
}





和loginuser的功能如下:



  public   bool  Loginuser(  string  UserName, string 密码)
{
if (db.ExecuteDataSet( splogin2 new object [] {UserName,Password})。表[ 0 ]。Rows.Count > 0
{
返回 true ;
}
返回 false ;
}







和sp是



 ALTER程序[dbo]。[splogin2] 
@UserName nvarchar( 50 ),
@Password nvarchar( 50

as
选择 Users.UserID 来自 [Users] 其中 UserName = @ UserName和
密码= @密码
和UserTypeID = 1 和UserTypeID = 2







现在我调试应用程序

然后用户登录并继续下一个表格,但当我尝试登录管理员时,它显示我不正确的密码



在这种情况下哪里是probelm ??? br />


i wnat为tboth用户和管理员做了一个登录表格

有人可以帮我吗

决定案

现在首先你需要为用户和按钮点击创建一个角色你需要获取用户的角色并检查你的if else条件,





  if (cd.GetUserRole(UserName.Text ,Password.Text)==  管理员
{
// 在此处进行编码
}
else if (cd.GetUserRole(UserName.Text,Password.Text)== 用户
{
// 在这里进行编码
}


如果我对UserTypeID的假设没有错,那么将你的SP更改为



  ALTER   procedure  [dbo]。[splogin2] 
@ UserName nvarchar 50 ),
@ Password nvarchar 50

as
选择 Users.UserID 来自 [Users] 其中 UserName = @ UserName
密码= @密码
UserTypeID = 1 UserTypeID = 2









已被添加,因为我认为您可以将Admin分配给UserTypeID = 1,User分配给UserTypeID = 2,

但是在你的SP中如果你写了AND然后它总是假的。





更新的解决方案 - >

将您的SP更改为关注 -

< pre lang = text > ALTER程序[dbo]。[splogin2]
@UserName nvarchar(50),
@Password nvarchar(50)

as
如果存在(从[Users]中选择Users.UserID,其中UserName = @ UserName和
密码= @密码
和UserTypeID = 1)选择1

如果存在(从[Users]中选择Users.UserID,其中UserName = @ UserName和
密码= @密码
和UserTypeID = 2 )选择2 < / pre >


更改登录用户的函数as-

//将返回类型更改为int
< pre lang = c# > public int Loginuser(string UserName,string Password)
{
//返回值如果Admin然后其他2为User
返回db.ExecuteDataSet(splogin2,new object [] {UserName,Password})。Tables [0] .Rows [0] [1] .ToString())

}
< / pre >


更改按钮点击as-

< pre lang = cs > protected void Button1_Click(object sender,EventArgs e)
{
if(cd.Loginuser(UserName.Text,Password.Text)== 1)
{
Session [& quot; UserID2& quot;] = cd.Loginuser(UserName.Text,Password 。文本);
Session [& quot; Login4& quot;] = UserName.Text;
Session [& quot; Login5& quot;] = Password.Text;
Lgin.Text =(& quot;登录成功& quot;);
Response.Redirect(& quot; WebForm1.aspx& quot;);



Lgin.Text =(& quot; Incorrect Passsword& quot;);
}

else if(cd.Loginuser(UserName.Text,Password.Text)== 2)
{
Session [& quot; UserID& quot ;] = cd.Loginuser(UserName.Text,Password.Text);
Session [& quot; Login2& quot;] = UserName.Text;
Session [& quot; Login3& quot;] = Password.Text;
Lgin.Text =(& quot;登录成功& quot;);
Response.Redirect(& quot; Home.aspx& quot;);

Lgin.Text =(& quot; Incorrect Passsword& quot;);
}
} < / pre >









谢谢


更新的解决方案 -



将您的SP更改为关注 -



  ALTER   procedure  [dbo]。[splogin2] 
< span class =code-sdkkeyword> @ UserName nvarchar 50 ),
@ Password nvarchar 50

as
如果 存在选择 Users.UserID 来自 [用户] where UserName = @ Use rName
密码= @密码
UserTypeID = 1)选择 1

如果 存在选择 Users.UserID 来自 [用户] 其中 UserName = @ UserName
密码= @密码
UserTypeID = 2)选择 2





更改登录用户的功能as-



  public   int  Loginuser( string  UserName, string 密码)
{
// 返回值如果Admin然后其他2为用户
返回 db.ExecuteDataSet( splogin2 new object [] {UserName,Password}。)表[ 0 ]。行[ 0 ] [ 1 ]。ToString())

}





更改按钮点击as-

  protected   void  Button1_Click( object  sender,EventArgs e)
{
< span class =code-comment> // 此处检查登录人员是Admin(1)还是User(2)
< span class =code-keyword> if (cd.Loginuser(UserName.Text,Password.Text)== 1 )
{
Session [& quot; UserID2& quot;] = cd.Loginuser(UserName.Text,Password.Text);
Session [& quot; Login4& quot;] = UserName.Text;
Session [& quot; Login5& quot;] = Password.Text;
Lgin.Text =(& quot;登录成功& quot;);
Response.Redirect(& quot; WebForm1.aspx& quot;);



Lgin.Text =(& quot; Incorrect Passsword& quot;);
}

else if (cd.Loginuser(UserName。 Text,Password.Text)== 2
{
Session [& quot; UserID& quot;] = cd.Loginuser(UserName .Text,Password.Text);
Session [& quot; Login2& quot;] = UserName.Text;
Session [& quot; Login3& quot;] = Password.Text;
Lgin.Text =(& quot;登录成功& quot;);
Response.Redirect(& quot; Home.aspx& quot;);

Lgin.Text =(& quot; Incorrect Passsword& quot;);
}
}


hey

i create one login form for user and admin

in login button code

protected void Button1_Click(object sender, EventArgs e)
       {
           if (cd.Loginuser(UserName.Text, Password.Text))
           {
               Session["UserID2"] = cd.Loginuser(UserName.Text, Password.Text);
               Session["Login4"] = UserName.Text;
               Session["Login5"] = Password.Text;
               Lgin.Text = ("Login Successfully");
               Response.Redirect("WebForm1.aspx");



               Lgin.Text = ("Incorrect Passsword");
           }

           else if (cd.Loginuser(UserName.Text, Password.Text))
           {
               Session["UserID"] = cd.Loginuser(UserName.Text, Password.Text);
               Session["Login2"] = UserName.Text;
               Session["Login3"] = Password.Text;
               Lgin.Text = ("Login Successfully");
               Response.Redirect("Home.aspx");

               Lgin.Text = ("Incorrect Passsword");
           }
       }



and the funtion of loginuser is follow

public bool Loginuser(string UserName, string Password)
       {
           if (db.ExecuteDataSet("splogin2", new object[] { UserName, Password }).Tables[0].Rows.Count > 0)
           {
               return true;
           }
           return false;
       }




and the sp is

ALTER procedure [dbo].[splogin2]
@UserName nvarchar(50),
@Password nvarchar(50)

as
select  Users.UserID  from [Users] where UserName=@UserName and
Password=@Password 
and UserTypeID=1 and UserTypeID=2




now when i debug the app
then user is login and proceed to next form but when i try to login admin the it shows me incorrect password

where is probelm in that case???

i wnat to done one login form for tboth user and admin
can somebody help me

解决方案

Now first of all you need to Create a Role for Both the users and in your button click you need to fetch the role of the user and check into your if else conditions,


if (cd.GetUserRole(UserName.Text, Password.Text) == "Administrator")
{
//do your coding here
}
else if(cd.GetUserRole(UserName.Text, Password.Text) == "User")
{
//do your coding here
}


If my assumption about UserTypeID is not wrong then Change your SP to

ALTER procedure [dbo].[splogin2]
@UserName nvarchar(50),
@Password nvarchar(50)

as
select  Users.UserID  from [Users] where UserName=@UserName and
Password=@Password
and UserTypeID=1 OR UserTypeID=2





OR has been added as i think you may assign the Admin to UserTypeID=1 and User to UserTypeID=2,
But in your SP if you write AND then it will always be FALSE.


Updated Solution->

Change Your SP as Follows-

<pre lang="text">ALTER procedure [dbo].[splogin2]
@UserName nvarchar(50),
@Password nvarchar(50)

as
If exists(select  Users.UserID  from [Users] where UserName=@UserName and
Password=@Password
and UserTypeID=1 )   select 1

If exists(select  Users.UserID  from [Users] where UserName=@UserName and
Password=@Password
and UserTypeID=2 )   select 2</pre>


Change the Function for the login User as-

//Change the return Type to int
<pre lang="c#">public int Loginuser(string UserName, string Password)
        {
// return the values if Admin then 1 else 2 for User
            return db.ExecuteDataSet("splogin2", new object[] { UserName, Password }).Tables[0].Rows[0][1].ToString())

        }
</pre>


Alter your button Click as-

<pre lang="cs">protected void Button1_Click(object sender, EventArgs e)
       {
           if (cd.Loginuser(UserName.Text, Password.Text)==1)
           {
               Session[&quot;UserID2&quot;] = cd.Loginuser(UserName.Text, Password.Text);
               Session[&quot;Login4&quot;] = UserName.Text;
               Session[&quot;Login5&quot;] = Password.Text;
               Lgin.Text = (&quot;Login Successfully&quot;);
               Response.Redirect(&quot;WebForm1.aspx&quot;);



               Lgin.Text = (&quot;Incorrect Passsword&quot;);
           }

           else if (cd.Loginuser(UserName.Text, Password.Text)==2)
           {
               Session[&quot;UserID&quot;] = cd.Loginuser(UserName.Text, Password.Text);
               Session[&quot;Login2&quot;] = UserName.Text;
               Session[&quot;Login3&quot;] = Password.Text;
               Lgin.Text = (&quot;Login Successfully&quot;);
               Response.Redirect(&quot;Home.aspx&quot;);

               Lgin.Text = (&quot;Incorrect Passsword&quot;);
           }
       }</pre>





Thanks


Updated Solution-

Change Your SP as Follows-

ALTER procedure [dbo].[splogin2]
@UserName nvarchar(50),
@Password nvarchar(50)

as
If exists(select  Users.UserID  from [Users] where UserName=@UserName and
Password=@Password
and UserTypeID=1 )   select 1

If exists(select  Users.UserID  from [Users] where UserName=@UserName and
Password=@Password
and UserTypeID=2 )   select 2



Change the Function for the login User as-

public int Loginuser(string UserName, string Password)
        {
// return the values if Admin then 1 else 2 for User
            return db.ExecuteDataSet("splogin2", new object[] { UserName, Password }).Tables[0].Rows[0][1].ToString())

        }



Alter your button Click as-

protected void Button1_Click(object sender, EventArgs e)
       {
// here Checking whether the login person is Admin(1) or User(2)
           if (cd.Loginuser(UserName.Text, Password.Text)==1)
           {
               Session[&quot;UserID2&quot;] = cd.Loginuser(UserName.Text, Password.Text);
               Session[&quot;Login4&quot;] = UserName.Text;
               Session[&quot;Login5&quot;] = Password.Text;
               Lgin.Text = (&quot;Login Successfully&quot;);
               Response.Redirect(&quot;WebForm1.aspx&quot;);



               Lgin.Text = (&quot;Incorrect Passsword&quot;);
           }

           else if (cd.Loginuser(UserName.Text, Password.Text)==2)
           {
               Session[&quot;UserID&quot;] = cd.Loginuser(UserName.Text, Password.Text);
               Session[&quot;Login2&quot;] = UserName.Text;
               Session[&quot;Login3&quot;] = Password.Text;
               Lgin.Text = (&quot;Login Successfully&quot;);
               Response.Redirect(&quot;Home.aspx&quot;);

               Lgin.Text = (&quot;Incorrect Passsword&quot;);
           }
       }


这篇关于一个登录2个用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆