获取当前登录的用户ID

时间:2015-02-04 12:18:10

标签: c# asp.net

我希望在不使用Current的情况下获取用户的Membership登录用户ID?如何实现?

这是我的代码

 string CurrentlyLoggedInUser = Session["User"].ToString(); // get the userId for username and compare
        string userId = CurrentlyLoggedInUser; // assign the userid here and check ok
        if (Id == userId)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('You cannot delete yourself');window.location ='AdduserProfile.aspx';", true);
            return;
        }

但我没有得到ID。请帮忙

会话

中的值
 if (dt != null && dt.Rows.Count > 0)
        {
            if (dt.Rows[0]["usertype"].ToString() == "0") //SuperAdmin
            {
                Session["UserType"] = "0";
                Session["User"] = dt.Rows[0]["username"].ToString();
                Response.Redirect("csrdashboards.aspx");
            }
            else if (dt.Rows[0]["usertype"].ToString() == "1") // Admin
            {
                Session["UserType"] = "1";
                Session["User"] = dt.Rows[0]["username"].ToString();
                Response.Redirect("csrdashboards.aspx");
            }
            else if (dt.Rows[0]["usertype"].ToString() == "2") // User
            {
                Session["UserType"] = "2";
                Session["User"] = dt.Rows[0]["username"].ToString();
                Response.Redirect("csrdashboards.aspx");
            }
        }

1 个答案:

答案 0 :(得分:1)

  

我想在不使用的情况下获取用户的当前登录用户ID   会员资格如何实现这一目标?

别。

看,我知道会员资格不是API设计中最好的例子。我知道有些事情我个人会做得与众不同,就像许多其他人一样,并且可能会有很强的诱惑来推出自己的会员资格API。

但是,如果你对自己的工作能力没有百分之百的信心,那就不要尝试。安全基础设施过于重要且太容易出错,并且很可能会出现问题并使您的网站容易受到攻击。

我不想让任何人失望,但是要查看您发布的代码的质量(代码重复,不必要的分配,多个字典查找,不必要的转换到字符串遍布整个地方)和一些你正在做的陈述(关于在你的数据库中有一个“密码”字段而没有提到散列),你还没有达到这个所需的能力水平,而你正在走向灾难。

“我怎么......?”这是错误的问题。 “我是不是该...?”这是你应该问的第一个问题,我担心答案是否定的。使用会员资格,它并不完美,但它会比你自己提出的任何东西都更加安全和强大。