使用登录页面保护asp.net站点的密码

时间:2012-04-24 10:57:08

标签: asp.net password-protection

我正在尝试密码保护asp.net网站,我已经做好了,但是如果他们把/home.aspx放在地址的末尾那么它会通过登录页面,是否有办法使这些其他页面只能通过按钮访问,如果直接访问它们会将您重定向到登录页面?

感谢

3 个答案:

答案 0 :(得分:0)

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

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

如果你向右滚动到底部,这就是你要找的东西,但是这个页面提供了你需要的所有信息。

答案 1 :(得分:0)

您可以在会话中存储登录状态,并在页面加载或pre init上检查isLoggedin标志,只有在成功登录后才会设置。这不会阻止他们在登录时直接导航到页面,但如果不登录则会阻止他们出现。

答案 2 :(得分: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部分的每个页面中都必须添加

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

如果会话UserID正在运行,则每次都会检查。如果它为空,则从未发生登录,因此用户将被重定向到他可以登录的页面。

希望这有帮助; - )