1

如何在 Web 方法中返回用户 ID 并在网站 ASP.NET 中使用返回的结果,使其成为会话变量以便在 ASP.NET 中的不同网页上使用它?

[WebMethod] public bool UserLogin(string EmailAdd, string Password) {

        SqlConnection myConnection = new SqlConnection(@"user id=BankUser;password=Computer1;server=(local)\sql2008;database=BillionBank;");
        myConnection.Open();
        SqlCommand myCommand = new SqlCommand("SELECT * FROM [BillionBank].[dbo].[tblCustomerProfile] WHERE EmailAdd='" + EmailAdd + "' AND Password ='" + Password + "'", myConnection);
        SqlDataReader myreader;
        myreader = myCommand.ExecuteReader();
        if (myreader.Read())
        {
            return true;
        }
        else
            return false;
    }

这是我的代码,当我在我的网站中调用 web 方法时,我想返回一个 Userid 作为结果并在网站中使用它作为会话变量

4

3 回答 3

1

在 web 方法中设置会话变量,如:

Session["userId"] = 1234;

然后在您的应用程序中,您可以再次调用会话。请注意,您需要再次将会话解析为 int

int userId
if(int.TryParse(Session["userId"].toString(), out userId)
{
     //do something
}
于 2012-11-01T10:54:10.173 回答
1

在 A webmethod 上保留一个[WebMethod(EnableSession = true)]然后您可以返回会话变量。

于 2012-11-01T10:59:42.523 回答
0
  public string GetUserID(string EmailAdd, string Password)
    {
        SqlConnection myConnection = new SqlConnection(@"user id=BankUser;password=Computer1;server=(local)\sql2008;database=BillionBank;");
        myConnection.Open();
        SqlCommand myCommand = new SqlCommand("SELECT * FROM [BillionBank].[dbo].[tblCustomerProfile] WHERE EmailAdd='" + EmailAdd + "' AND Password ='" + Password + "'", myConnection);
        SqlDataReader myreader;
        string result = "";

        myreader = myCommand.ExecuteReader();
        if (myreader.Read())
        {
            result = Convert.ToString(myreader["UserID"]);
        }

        return result;

    }

protected void btnLogin_Click(object sender, EventArgs e)
{
    Session["UserID"] = GetUserID(YOUR_EMAILID, YOUR_PASSWORD);
}
于 2012-11-01T11:16:39.253 回答