在从sql server验证用户后,在我的asp.net上显示用户名

时间:2015-06-15 05:22:43

标签: c# asp.net sql-server-2008

我想在我的asp.net页面上显示登录的用户名是什么查询或任何必要的操作帮助我

CREATE PROCEDURE validate_user    
    @Username VARCHAR(20),    
      @Password VARCHAR(20)    
AS    
BEGIN    
      SET NOCOUNT ON;    
      DECLARE @UserId INT    

      select count(*)from UserArtTable where UserName = @Username and passwd = @Password    
End

我的此存储过程仅在用户是否存在时进行身份验证 我想要的是,如果用户存在,那么我存储在数据库中的他/她的用户名应填入asp.net页面 我必须用C#或客户端用jquery写的代码我被困在这里。我根本没有头绪 我在3层工作,你可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

我们可以使用存储过程中的输出参数从单个查询返回用户名。使用此存储过程。

       CREATE PROCEDURE validate_user    
        @Username VARCHAR(20),    
        @Password VARCHAR(20),
        @UsernameOutput VARCHAR(20) output
    AS    
    BEGIN    
          SET NOCOUNT ON;    
    declare @test int
      select @test=count(*) from UserArtTable where UserName = @Username and passwd = @Password 
      if(@test>0)
          select @UsernameOutput=UserName from UserArtTable where UserName = @Username and passwd = @Password 
    End

通常,在实际情况中,我们将有两个存储过程,一个用于验证凭据,另一个用于在登录后加载用户信息。如果这是您的要求,请使用上面的代码。

这对你有用。如果确实请将其标记为答案

答案 1 :(得分:0)

在C#中,您可以按照以下步骤显示用户名:

  1. 使用上面提到的存储过程验证用户名(xxx)
  2. 使用另一个PROC从数据库中获取用户,如下所示:
  3.     CREATE PROCEDURE get_user    
        @Username VARCHAR(20)    
        AS    
        BEGIN    
          SET NOCOUNT ON;    
          DECLARE @UserId INT    
    
          select * from UserArtTable where UserName = @Username 
        End
    
    1. 现在使用从数据库中获取的用户名显示在您想要的页面上
    2. 这是一个通用解决方案,您需要在C#中创建以下方法:

      1. bool ValidateUser(string userName,string password)
      2. UserObject GetUser(string userName)

答案 2 :(得分:0)

您正在从存储过程中获取计数。因此,只需按ExecuteScalar()ExecuteNonQuery()获取结果,然后像这样检查计数:

    ...
    int countResult = ExecuteNonScalar();

    if(countResult > 0)
    {
         Display(userName); 
         //userName here is the same that you have passed to your Stored Procedure. 
    }