保护某些页面免受ASP.NET中的直接访问

时间:2010-05-24 23:05:38

标签: asp.net vb.net

我有一个名为admin.aspx的ASP.NET页面,需要保护其免受直接访问。

我希望只有当用户输入他的名字&密码在另一个名为login.aspx的页面中。

我使用Visual Basic .NET 2008在ASP.NET中工作,我不知道该怎么做。

我该怎么做?

4 个答案:

答案 0 :(得分:4)

此行为的正确用语是Authorization

事先我需要知道的一些事情:

  • 您有自己的登录/退出逻辑吗?
  • 您使用的是自定义用户数据库/表吗?
  • 如果上述两个问题都以yes回答:您是否已阅读/听到有关MembershipRoleProviders的内容?

.NET具有很好的内置机制来解决这个问题。它不仅提供了很好的配置可能性,而且实现起来非常容易!

以下是ASP.NET成员资格提供程序中非常详细的步骤:

ASP.NET 2.0 Membership and Roles Tutorial Series

即使它使用 ASP.NET 2.0 和C#,它在 .NET3.5 / 4.0 和VB上也不应该有所不同。 NET

答案 1 :(得分:1)

我找到了它:

在登录页面(“login.aspx”)中执行以下操作:

Session("Name") = "Yes"

Response.Redirect("admin.aspx")

在管理页面(“admin.aspx”)中:

If Session("Name") = "Yes" Then
    'You can here display anything you want, or just leave it blank
Else
    Response.Redirect("ErrorPage.aspx")
End If

答案 2 :(得分:1)

您应该在加载页面之前先检查用户会话:

protected void Page_Load(object sender, EventArgs e)
{
    if (session == null)
    {
        // Just redirect to login page or no access page warning.**
    }

    if (!Page.IsPostBack)
    {
       //If your were logged in then you will access this page
    }
}

答案 3 :(得分:0)

您可以通过Forms authentication处理。在您的情况下,您希望确保限制admin.aspx的访问权限,以便您可以通过指定location标记在web .config中提供该条目来实现此目的。看看这个网站:

http://www.dnzone.com/go?60

HTH