gpt4 book ai didi

asp.net - 从安全页面上的 asp.net 控件不安全地回发,同时避免身份验证

转载 作者:行者123 更新时间:2023-12-02 00:46:51 25 4
gpt4 key购买 nike

我们使用标准的 asp.net 表单例份验证。某些页面需要用户登录;这些页面中至少有一些是通过 https 传送的。每个页面的顶部都有一个搜索控件。当使用这个时,我们不关心用户的 session 是否已经过期,即使当前页面需要登录。

但是,目前,在执行搜索时,内置的表单例份验证会发现发布到的页面需要身份验证,并将用户重定向到登录页面,以及之前的页面,而不是搜索结果页面 作为推荐人。

这里绕过安全措施的最佳方法是什么?我考虑过使用 PostBackUrl 属性发布到不同的页面,但如果这不是 https,您会收到“您正在将数据发布到不安全的连接”消息,这是用户不喜欢的。

感谢您的帮助。

编辑:感谢 Nick 建议在搜索页面上使用 GET。我们已经这样做了,但是查询字符串是由搜索输入控件构造的,然后会重定向。我们如何在不使用回发的情况下构建查询字符串? (显然 javascript 是一个选项,但我希望找到替代机制。)

最佳答案

对于搜索页面,您要确保搜索是通过 GET 请求进行的。 (即像在查询字符串中使用“q”的 google)您可能正在执行 POST。

所以改变你的

<form method="post" ...>

<form method="get" ...>

大多数开发人员在搜索页面上犯的最大错误是进行回发。 HTTP 旨在通过查询字符串(因此名称)进行查询或搜索,并获取表单以发布到查询字符串而不是正文,您需要使用“GET”方法。这样任何搜索设备都可以使用您的搜索页面,甚至是浏览器的搜索框。

其次你想创建一个特殊的location config为您搜索页面。您将其添加到您的 web.config 中。

<location path="my-search-page.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>

这为那个页面创建了一个特殊的覆盖,位置标签内的所有内容都使用完全相同的 web.config 结构来覆盖 web.config。

您需要为允许所有用户访问的每个页面重复此操作。

关于asp.net - 从安全页面上的 asp.net 控件不安全地回发,同时避免身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/201796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com