【问题标题】:Disable user from accessing page VIA address bar禁止用户访问页面 VIA 地址栏
【发布时间】:2015-07-16 19:21:54
【问题描述】:

下午,

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

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

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

"/Account/nLogin.aspx"

到登录按钮后的页面:

"PolicySearch.aspx"

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

【问题讨论】:

  • 你在使用网络表单吗?
  • @basher 不,我正在使用 asp.net 网页。

标签: asp.net vb.net url


【解决方案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 了解更多信息。

【讨论】:

  • 感谢您的回答,我现在要试试这个。
  • 我已经添加了这段代码,但由于某种原因登录页面甚至无法加载。在页面加载之前,我收到“用户名和密码不正确”弹出窗口。
  • @BenClarke 这不是 ASP.NET 的一部分,那是您自己的代码说用户名和密码不正确。尝试在您的代码中搜索该短语以查看它的来源。您可以使用ctrl+shift+f 在您的项目/解决方案中的所有文件中进行搜索。
猜你喜欢
  • 1970-01-01
  • 2015-09-17
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
  • 2019-07-13
  • 2011-11-17
  • 2023-04-03
  • 1970-01-01
相关资源
最近更新 更多