我在系统上具有定制的身份验证,我希望某些页面(例如EditingProfile.aspx)无法通过URL导航进行访问。 如果用户被授权:按钮(例如btnEditingProfile)已启用,并将重定向到EditingProfile.aspx。 是未授权的用户:按钮(btnEditingProfile)将被禁用。我正在寻找一种防止用户通过URL导航访问EditingProfile.aspx的方法。
我正在使用的系统很旧,所以我需要一种安全的方法来保护它,而又不会干扰系统的其他方面。
MainMenu.aspx
protected void Page_Load(object sender, EventArgs e)
{
//CODE
if (!m_mainController.m_IsAutorized)
btnEditProfile.Enabled = false;
//MORE CODE
}
protected void btnEditProfile_Click(object sender, EventArgs e)
{
queryStrings=SOMEVALUE();
string QueryString = QueryStringEncrypter.GetEncryptedQueryString(queryStrings);
Response.Redirect("ProfileDetails.aspx?" + QueryString, false);
}
答案 0 :(得分:0)
我认为,每个用户都应该有一个登录会话以了解其权限。 https://www.codeproject.com/Articles/21474/Easy-way-to-create-secure-ASP-NET-login-using-Sess
答案 1 :(得分:0)
按照蒂姆·阮的建议,我做了以下事情:
在我添加的MainMenue.aspx中
protected void Page_Load(object sender, EventArgs e)
{
//code
if (!m_mainController.m_IsAutorized)
btnEditProfile.Enabled = false;
Session["url"] = Request.UrlReferrer.AbsoluteUri.ToString();
//more code
}
在EditingProfile.aspx中:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["url"] != null)
{
Response.Redirect(Session["url"].ToString());
}
//code
}
没有其他改变。代码以我想要的方式运行,因此我认为id可以在有人需要时更新此问题。