0

我正在尝试用密码保护一个 asp.net 站点,我做得很好,但是如果他们把 /home.aspx 放在地址的末尾,那么它将绕过登录页面,有没有办法让那些其他的页面只能通过按钮访问,如果直接访问它们会将您重定向到登录页面?

谢谢

4

3 回答 3

0

除非您使用其他方式.. 只需查看 msdn 上的 asp.net 会员提供程序文档:

http://msdn.microsoft.com/en-us/library/ff648345.aspx

如果您向右滚动到底部,这就是您要查找的内容,但此页面提供了您需要的所有信息。

于 2012-04-24T11:01:00.457 回答
0

您可以将登录状态存储在会话中,并检查页面加载或预初始化以获取 isLoggedin 标志,该标志只有在成功登录时才会设置。如果他们登录,这不会阻止他们直接导航到页面,但如果他们没有登录,则会阻止他们。

于 2012-04-24T11:13:31.260 回答
0

在您登录的那一刻,您应该开始一个会话。这是我在一个高中项目中使用的一些代码

> public void LoginUser(string id, string mail, string ww, string admin)
>     {
>         Session["UserID"] = id;
>         Session["IsAdmin"] = admin;
>         if(admin == "admin")
>         {
>             Response.Redirect("~/Admin/AdminCP.aspx");
>         }
>         else if (admin == "user")
>         {
>             Response.Redirect("~/User/UserCP.aspx");
>         }
>         else
>         {
>             lblLoginError.Text = "An error has accurred";
>             lblLoginError.Visible = true;
>             lblLoginError.CssClass = "failureNotification left";
>         }
>     }

这是我用来检测用户是管理员还是基本用户的一种方法。在此之后,您必须在 Page_Load-section 的每一页中添加

> if (Session["UserID"] == null)
>         {
>             Response.Redirect("~/Account/Login.aspx");
>         }

这将检查每次会话用户 ID 是否正在运行。如果为空,则永远不会登录,因此用户将被重定向到他可以登录的页面。

希望这有帮助;-)

于 2012-04-24T11:40:26.943 回答