Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.Net安全实现_C#_Asp.net_Vb.net_Security - Fatal编程技术网

C# ASP.Net安全实现

C# ASP.Net安全实现,c#,asp.net,vb.net,security,C#,Asp.net,Vb.net,Security,我希望有人能告诉我下面的情况是否可以接受,如果不能,我还有什么其他的方法来解决这个问题 我开发了一个ASP.Net网站,使用表单身份验证,使用我们自己的数据库(SQL)模型进行身份验证。多个用户可以登录。需要考虑的一点是,每个用户都不能访问彼此的记录。 在代码中,我有一个用户对象,它加载登录用户的详细信息 当他们访问一条记录时,我会有一个超链接,其中包含传入的记录的ID,该ID被重定向到详细信息页面,用户可以在该页面查看完整的记录 现在在详细信息页面上,我再次加载当前用户的详细信息,然后使用一些

我希望有人能告诉我下面的情况是否可以接受,如果不能,我还有什么其他的方法来解决这个问题

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

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

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

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

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

这听起来还可以吗?或者我需要做些什么?当然,如果没有返回详细信息,我将实现重定向到拒绝访问页面,而不是显示空白页面


如果您有任何问题,请随时提问。

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


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

请用您的具体问题更新标题。。你可以阅读,你的问题是什么?您是否在问已经实现的机制是否安全?如果这是一个问题,那么这不是正确的网站,你可能想尝试一下。当你说“在原始响应中返回错误消息”是什么意思?当用户访问另一个用户记录时,不会返回任何结果。或者,您的意思是如果返回0条记录,则用户服务器.Transfer?通过“在原始响应中返回错误消息”,我的意思是您应该将人类可读的错误消息返回给用户,而不执行
响应。重定向
,它应该在相同的请求/响应周期内返回给客户端。如果没有显示行,我可以只显示一个带有“拒绝访问”的面板吗?