0

我希望有人可以建议以下情况是否可以接受,如果不是,我还有什么其他方法可以解决这个问题。

我开发了一个使用表单身份验证的 ASP .Net 站点,使用我们自己的数据库 (SQL) 模型进行身份验证。多个用户可以登录。需要考虑的一点是,每个用户都不能访问彼此的记录。

在代码中,我在页面加载时有一个 User 对象,它加载登录用户的详细信息。

当他们访问记录时,我会拥有一个超链接,其中包含传递的记录 ID,该 ID 被重定向到用户可以查看完整记录的详细信息页面。

现在在详细信息页面上,我再次加载当前用户的详细信息,然后使用一些 SQL 来获取用户登录 ID 和传入记录 ID 的记录。

到目前为止,这已经奏效,因为我使用访问自己记录的用户 1 登录 - 复制 URL 并将其粘贴到另一个浏览器中,该浏览器将用户重定向到登录页面。这次我使用用户 2 登录。页面已显示,但没有详细信息。

这听起来不错还是我需要做的其他事情?当然,如果没有返回详细信息,我将实现对访问被拒绝页面的重定向,而不是显示空白页面。

如果您有任何问题随时问。

4

1 回答 1

0

这一切听起来都很好——尽管我会选择更精细的东西:允许在访问控制列表的基础上访问其他人的记录,但这更复杂。

在您所写的内容中,我唯一要更改的是“重定向”到拒绝访问的页面。永远不要重定向到错误页面- 而是在原始响应中返回错误消息。您可以在 ASP.NET WebForms 中执行此操作,方法是使用Server.Transfer,或清除响应缓冲区(如有必要)并将页面内容设置为带有正确消息的 ASCX。不要忘记将 HTTP 状态设置为 403。

于 2013-03-09T11:52:17.330 回答