我希望在不使用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");
}
}
答案 0 :(得分:1)
我想在不使用的情况下获取用户的当前登录用户ID 会员资格如何实现这一目标?
别。
看,我知道会员资格不是API设计中最好的例子。我知道有些事情我个人会做得与众不同,就像许多其他人一样,并且可能会有很强的诱惑来推出自己的会员资格API。
但是,如果你对自己的工作能力没有百分之百的信心,那就不要尝试。安全基础设施过于重要且太容易出错,并且很可能会出现问题并使您的网站容易受到攻击。
我不想让任何人失望,但是要查看您发布的代码的质量(代码重复,不必要的分配,多个字典查找,不必要的转换到字符串遍布整个地方)和一些你正在做的陈述(关于在你的数据库中有一个“密码”字段而没有提到散列),你还没有达到这个所需的能力水平,而你正在走向灾难。
“我怎么......?”这是错误的问题。 “我是不是该...?”这是你应该问的第一个问题,我担心答案是否定的。使用会员资格,它并不完美,但它会比你自己提出的任何东西都更加安全和强大。