我的项目中有多个网络表单。这是一个简单的项目。用户身份验证是通过检查数据库中的有效用户名和密码以及角色来完成的。 在每个网页的 Page_Load 事件中,我添加了这段代码:
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (Session["username"] == null & Session["role"] == null)
{
Response.Redirect("WebLogin.aspx", false);
Context.ApplicationInstance.CompleteRequest();
}
}
catch (Exception ex) { }
}
这样,如果有人试图通过 URL 访问特定网页,它将检查用户名和角色。如果为空,则重定向到登录页面。
请您推荐任何其他更有效的方法。在每一个code behind page里都加上这段代码,看起来很不专业。
最佳答案
创建继承Page类的新类PageBase并覆盖它的onload方法,然后添加你的登录验证码
public abstract class PageBase : Page
{
protected override void OnLoad(EventArgs e)
{
if (Session["username"] == null & Session["role"] == null)
{
Response.Redirect("WebLogin.aspx", false);
Context.ApplicationInstance.CompleteRequest();
}
}
现在,对于您的每个表单,只需更改页面类继承自:
public partial class HomePage : Page
像这样添加到 PageBase:
public partial class HomePage : PageBase
这将使您的代码更有条理和干净
关于c# - 检查每个页面的登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40903492/