用户帐户页的用户标识



在我的应用程序中,我使用User.Identity来获取登录用户的用户名,我想知道我是否可以使用它来获取电子邮件和密码信息,因为我想要一个用户帐户页面,用户可以在其中查看电子邮件用户名等并更改他们的密码。

还有一个名为getusers的Web服务,它从数据库中的用户表中获取所有信息,但是如果我这样做,我不确定如何从数据库中获取登录用户的帐户信息。

到目前为止,我有这个:

protected void Page_Load(object sender, EventArgs e)
{
    if (User.Identity.IsAuthenticated)
    {
        username.Text = User.Identity.Name;
    }
    localhost.Service1 myws = new localhost.Service1();
    ds = myws.GetUsers();
}

这很好,因为我得到了用户名,但我需要其余的。

哦,这是Web服务GetUsers:

[WebMethod]
    public DataSet GetUsers()
    {
        DataSet ds = new DataSet();
        string database = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/dvd_forum.accdb;Persist Security Info=True";
        string queryStr = "select * from Users";
        OleDbConnection myConn = new OleDbConnection(database);
        OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(queryStr, myConn);
        myConn.Open();
        myDataAdapter.Fill(ds, "Users");
        myConn.Close();
        return ds;
    }

谢谢。

如果您在 asp.net 应用程序中使用MemberUser类,则可以检查此链接。

下面是一段代码。

public void Page_Load(object sender, EventArgs args)
{
  u = Membership.GetUser(User.Identity.Name);
  if (!IsPostBack)
  {
    EmailTextBox.Text = u.Email; 
  }
}

首先,我必须警告您,您的GetUsers()方法对SQL注入开放。撇开...

如果您稍微修改了该GetUsers()方法以接受参数并将搜索范围缩小到唯一用户,则可以:

[WebMethod] 
public DataSet GetUser(string UserName) 
{ 
    DataSet ds = new DataSet(); 
    string database = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/dvd_forum.accdb;Persist Security Info=True"; 
    string queryStr = "select * from Users WHERE UserName=" + UserName; 
    OleDbConnection myConn = new OleDbConnection(database); 
    OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(queryStr, myConn); 
    myConn.Open(); 
    myDataAdapter.Fill(ds, "Users"); 
    myConn.Close(); 
    return ds; 
} 

现在您需要做的就是打电话

GetUser(User.Identity.Name);

假设用户名存储在数据库中,你将在数据集中返回用户记录。

相关内容

  • 没有找到相关文章

最新更新