保护所有页面在网络表单的 asp.net 身份中不起作用

protect all pages does not work in asp.net identity for webforms

我已经使用网络表单和个人帐户创建了一个新的网络应用程序,我可以创建用户并登录。但我需要所有页面都受密码保护。我需要添加什么才能使其正常工作?

您没有添加很多细节,但我认为您的解决方案是检查用户是否在 Page_Load 进行了身份验证。

这应该包含在您的 base 页面 class 中(假设您有一个并且没有直接实现页面 class)。

 public abstract class MyBaseAuthProtectedPage : Page
 {
    private void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if(!User.Identity.IsAuthenticated)
            {
                 //not authenticated logic here
            }
        }
     }
....
 }

您的所有页面都应实施 MyBaseAuthProtectedPage class.