如何从会话中获取对象属性

时间:2013-12-13 13:47:07

标签: c# asp.net session

我的asp.net C#项目中有一个名为“admin”的类 它是:

public class Admin
{  
    private int ID;
    private string FirstName, LastName, IsMainAdmin, Email, Username, 
            Password,BirthDate, EntryDate;  

    public int id
    {
        get { return ID; }
        set { ID = value; }
    }

    public string firstname
    {
        get { return FirstName; }
        set { FirstName = value; }
}

    public string lastname
    {
        get { return LastName; }
        set { LastName = value; }
    }
    .  
    .  
    .  

登录后会创建一个会话:

Admin admin = isAdmin(username, password);
    if (admin != null)
    {
        **Session.Add("maskanAdmin", admin);**
        Response.Redirect("panel.aspx");
    }

在其他页面中,我需要通过jquery ajax在页面请求之后的代码后面的会话中获取管理员的ID。
请注意,我在Method后面的代码是[WebMethod],它不支持Session Object。
我能得到它吗?怎么样?

4 个答案:

答案 0 :(得分:6)

var adminObj = (Admin)Session["maskanAdmin"];    
if(adminObj != null)
{
    var id = adminObj.id;
    var fname = adminObj.firstname;
}

详细了解Read Values from Session State

<强>更新

我不确定为什么问题会在一小时后更新,说您正在使用网络方法中的代码。

但是,请查看Using ASP.NET Session State in a Web Service

答案 1 :(得分:1)

当您从Session中检索它时,您只需将其强制转换回Admin类型对象:

Admin admin = (Admin)Session["maskanAdmin"];

然后您可以正常使用对象的属性:

if(admin.ID == someOtherID)
{
    // do stuff
}

答案 2 :(得分:1)

Admin variableName = (Admin)Session["maskanAdmin"];

答案 3 :(得分:1)

var adminObj = Session["maskanAdmin"];
if(adminObj != null)
{
    var admin = (Admin)adminObj;
}