从会话对象获取值

本文关键字:获取 对象 会话 | 更新日期: 2023-09-27 18:17:48

这些是我设置会话对象的代码。我想用这个对象来获取登录用户的信息。但我无法做到这一点,我得到错误"输入字符串不是正确的格式"。我需要帮助这里知道如何创建一个对象&从会话对象中获取值

public UserLoginDetails LoggedUserDetails
    {
        set { Session["loggeduserdetails"] = value; }
        get
        {
            if (Session["loggeduserdetails"] == null)
            {
                if (Session["username"] == null)
                {
                    Response.Redirect("../Authentication/Login.aspx");
                }
                if (Session["password"] == null)
                {
                    Response.Redirect("../Authentication/Login.aspx");
                }
                DAL.LoginHistoryDAL LoginDAL = new DAL.LoginHistoryDAL();
                DataSet Ds = LoginDAL.AuthenticateUser(Session["username"].ToString(), EncryptionUtility.Encrypt(Session["password"].ToString()));
                UserLoginDetails ULD = new UserLoginDetails();
                if (Ds.Tables[0].Rows.Count > 0)
                {
                    // Populating UserObj
                    bool IsAdmin = false;
                    bool IsMasterAdmin = false;
                    if (Ds.Tables[0].Rows[0]["IsAdmin"].ToString() == "1")
                    {
                        IsAdmin = true;
                    }
                    else
                    {
                        IsAdmin = false;
                    }
                    if (Ds.Tables[0].Rows[0]["IsMasterAdmin"].ToString() == "1")
                    {
                        IsMasterAdmin = true;
                    }
                    else
                    {
                        IsMasterAdmin = false;
                    }

                    ULD = new UserLoginDetails();
                    ULD.UserId = int.Parse(Ds.Tables[0].Rows[0]["UserId"].ToString());
                    ULD.IsAdmin = IsAdmin;
                    ULD.IsMasterAdmin = IsMasterAdmin;
                    ULD.UserName = Ds.Tables[0].Rows[0]["FullName"].ToString();
                    ULD.LocationID = int.Parse(Ds.Tables[0].Rows[0]["LocationID"].ToString());
                    ULD.FullName = Ds.Tables[0].Rows[0]["FullName"].ToString();
                    ULD.StatusId = int.Parse(Ds.Tables[0].Rows[0]["StatusId"].ToString());
                    ULD.Email = Ds.Tables[0].Rows[0]["Email"].ToString();
                    ULD.CellNo = Ds.Tables[0].Rows[0]["Cell"].ToString();
                    ULD.CityId = int.Parse(Ds.Tables[0].Rows[0]["CityID"].ToString());
                    ULD.StateId = int.Parse(Ds.Tables[0].Rows[0]["StateId"].ToString());
                    ULD.CountryId = int.Parse(Ds.Tables[0].Rows[0]["CountryID"].ToString());
                }
                Session["loggeduserdetails"] = ULD;
            }
            return (UserLoginDetails)Session["loggeduserdetails"];
        }
    }
}
public class UserLoginDetails
{
    public int UserId = 0;
    public bool IsAdmin = false;
    public bool IsMasterAdmin = false;
    public string UserName = string.Empty;
    public int LocationID = 0;
    public string FullName = string.Empty;
    public int StatusId = 0;
    public string Email = string.Empty;
    public string CellNo = string.Empty;
    public int CityId = 0;
    public int StateId = 0;
    public int CountryId = 0;
}

从会话对象获取值

看起来像您期望的数字值中的一个数据块不是。例如,UserId或CityID不是数值或任何其他值。我会看一下下面的代码行:

ULD.UserId = int.Parse(Ds.Tables[0].Rows[0]["UserId"].ToString());
ULD.LocationID = int.Parse(Ds.Tables[0].Rows[0]["LocationID"].ToString());
ULD.StatusId = int.Parse(Ds.Tables[0].Rows[0]["StatusId"].ToString());
ULD.CityId = int.Parse(Ds.Tables[0].Rows[0]["CityID"].ToString());
ULD.StateId = int.Parse(Ds.Tables[0].Rows[0]["StateId"].ToString());
ULD.CountryId = int.Parse(Ds.Tables[0].Rows[0]["CountryID"].ToString());