日期:2014-05-18  浏览次数:20404 次

ASP.NET三成架构怎么在用户登录时记录主键ID
我想在用户登录时,同时记录ID到Session里面,但我不想在表示层有填写主键ID,请问怎么写方法?
这是我登录时的方法
C# code
public bool IsExists(string name, string pw, string rank)
       {
           bool flag = false;
           string sql = "select * from ManageAdmin where AdminName='" + name + "' and AdminPw='" + pw + "' and AdminRank='" + rank + "'";
           DataTable dt = sqlhelper.ExecuteQuery(sql, CommandType.Text);
           if (dt.Rows.Count > 0)
           {
               flag = true;
           }
           return flag;
       }


------解决方案--------------------
你在实体层那边新建一个用户登录的实体类,那些属性的返回值都是session的值,并且在写入的set方法里面给相应的session赋值value,即那些id,username之类的,到时候你的主键ID之间在应用层调用这个实体类的属性就可以得到了
------解决方案--------------------
首先登录类中继承System.Web.UI.Page。
然后下面代码
C# code

public bool IsExists(string name, string pw, string rank)
       {
           bool flag = false;
           string sql = "select * from ManageAdmin where AdminName='" + name + "' and AdminPw='" + pw + "' and AdminRank='" + rank + "'";
           DataTable dt = sqlhelper.ExecuteQuery(sql, CommandType.Text);
           if (dt.Rows.Count > 0)
           {
               Session["ID"]=dt[0]["id"].ToString();
               flag = true;
           }
           return flag;
       }

------解决方案--------------------
可以登录的同时返回ID
------解决方案--------------------
记得好像是@@identity,返回个就好了,还有拼接字符串有注入风险。
------解决方案--------------------
在登录是将ID查询出来然后保存到Session里面。

------解决方案--------------------
探讨

在登录是将ID查询出来然后保存到Session里面。

------解决方案--------------------
可以用ExecuteScalar
性能会高
------解决方案--------------------
探讨
首先登录类中继承System.Web.UI.Page。
然后下面代码

C# code

public bool IsExists(string name, string pw, string rank)
{
bool flag = false;
string sql = "select * from ManageAdmin……

------解决方案--------------------
探讨

数据逻辑层能写Session的?引用:

首先登录类中继承System.Web.UI.Page。
然后下面代码
C# code

public bool IsExists(string name, string pw, string rank)
{
bool flag = false;
string sql = "select * f……

------解决方案--------------------
把实体类付给session