针对某些 ASP.NET 页面使用授权标记进行 Windows 身份验证

发布于 2024-11-03 21:04:15 字数 681 浏览 2 评论 0原文

我正在开发一个 Intranet asp.net 应用程序。我们将使用 Windows 身份验证,因此在 web.config 中将身份验证模式设置为 windows。

我想限制某些页面仅对某些用户开放,因此我使用 带有允许/拒绝某些用户的标签的标签。

场景:

不允许用户 1 访问“Reports.aspx”页面(此页面使用 web.config 中的授权标记限制访问)

允许用户 2 访问此页面。 它们都在 MYCOMPANY 域中。

当 User1 尝试访问此页面时,他会看到一个凭据弹出窗口 - 他将输入“User2”的详细信息,因为允许 user2 访问;随后,user1 现在可以访问此页面(通过使用 user2 的详细信息)。

现在user1返回到不受授权标签限制的其他页面。假设他进入主页。现在,他将再次从主页尝试访问 Reports.aspx。从逻辑上讲,此时必须再次提示输入登录凭据。但没有弹出窗口,并且允许 user1 访问 REports 页面。

我决定在这种情况下使用 HTTPContext.Current.User.Identity.Name 检查用户名。当 user1 尝试第二次访问 Reports.aspx 时(第一次成功登录后),他的凭据将存储在浏览器中(我猜),因为这一次,当页面加载时,凭据显示为 User2在后面的代码中。

如何防止这种情况并强制每次该页面都出现登录提示?

I am developing an intranet asp.net application. We will be using Windows authentication, so the authentication mode is set to windows in web.config.

I want to restrict some pages to only certain users so I am using the
tag with the tag to allow/deny certain users.

Scenario :

User1 is not allowed access to page "Reports.aspx" (this page has restricted access using the authorization tag in web.config)

User2 is allowed access to this page.
Both of them are in the MYCOMPANY domain.

When User1 tries to access this page he is shown a credentials popup - he will enter the details of "User2" since user2 is allowed access ; subsequently, user1 is now able to access this page(by using user2's details).

Now user1 goes back to some other page which is not restricted by authorization tag. Lets say he goes to homepage. Now again from homepage, he will try to access Reports.aspx. At this point logically speaking, again a prompt for login credentials must come up . But instead no popup comes up and the user1 is allowed access to REports page.

I decided to check the username using HTTPContext.Current.User.Identity.Name in this scenario. When the user1 is trying to access Reports.aspx for second time(after having logged in successfully first time) his credentials are being stored in the browser(I guess) because this time around, when the page loads, the credentials show up as User2 in code behind.

How to prevent this and force a login prompt every time for this page ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我最亲爱的 2024-11-10 21:04:15

当我问这个问题时,我猜我是个n00b。

为了那些可能遇到过这种情况的人的利益 - 当您再次登录时,将不再保留原始凭据,并且 ASP.NET 此后始终将您识别为 User2。

Guess I was a n00b back when I asked this.

For the benefit of people who might have faced a scenario - when you login again, the original credentials are no longer maintained and ASP.NET always recognizes you as the User2 hereafter.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文