我正在尝试密码保护asp.net网站,我已经做好了,但是如果他们把/home.aspx放在地址的末尾那么它会通过登录页面,是否有办法使这些其他页面只能通过按钮访问,如果直接访问它们会将您重定向到登录页面?
感谢
答案 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正在运行,则每次都会检查。如果它为空,则从未发生登录,因此用户将被重定向到他可以登录的页面。
希望这有帮助; - )