禁止用户访问页面VIA地址栏

时间:2015-05-06 14:57:26

标签: asp.net vb.net url

下午,

我目前正在修复我的应用程序中的一些问题,并且遇到了一个非常严重且以前从未想过的问题。

在我的应用程序中,用户必须登录,并且当他们输入详细信息时,它会进入数据库并检查它们是否在那里,如果它们不是错误消息,如果它们是,则它们将被登录。 / p>

如果用户转到地址栏并更改登录页面:

"/Account/nLogin.aspx"

登录按钮后的页面:

"PolicySearch.aspx"

用户将被定向到该页面。有没有办法可以禁止用户使用地址栏从一个页面移动到另一个页面?

1 个答案:

答案 0 :(得分:1)

将以下内容添加到您的web.config:

<authentication mode="Forms">
  <forms name="myApp" loginUrl="/Account/nLogin.aspx" timeout="30" path="/" protection="All" />
</authentication>
<authorization>
  <deny users="?" />
</authorization>

这将在您的应用中启用表单身份验证,强制用户通过loginUrl访问登录页面,并拒绝通过deny users="?"向匿名用户输入。 Here's the docs for it。然后将以下代码添加到nLogin.aspx.vb:

/* after make sure user credentials are valid. */
Web.Security.FormsAuthentication.RedirectFromLoginPage(username, false)

这将授权他们并将他们重定向到他们最初请求的任何页面。如果他们只导航到登录页面,那么您可以使用response.redirect将其发送到其他位置。您可以查看docs以获取更多信息。