登录我的页面后,我打开了不同的链接,我的页面通过了带有查询字符串的链接
例如:http://localhost/document/doc.aspx?aaa=ddd
当我删除url中的查询字符串并复制url并打开新浏览器并粘贴url时,当我按enter doc.aspx页面打开时,我希望这次重定向登录页面。我的应用程序中有多个页面,我该怎么做呢?我们使用的是forms身份验证。
发布于 2011-05-07 18:02:21
这是ASP.Net成员提供程序的内置行为-它将在访问任何受保护的URL之前检查身份验证。
当你说“打开不同的浏览器”时,你是指同一浏览器的新实例,即Internet Explorer的2个窗口,还是不同浏览器的实例,即Firefox的1个窗口,Chrome的1个窗口?如果您使用的是同一个浏览器,它仍将拥有身份验证cookie,并且仍然进行身份验证,但如果您打开另一个浏览器(该浏览器不与另一个浏览器共享cookie),那么您将获得重定向行为。如果您要将您的链接复制/粘贴到其他人,他们当然会被重定向,因为他们没有身份验证cookie,除非他们当前以自己的身份登录。
发布于 2011-05-07 19:00:26
您需要确保您的页面/文件夹在web.config中被锁定。
元素的作用是:指定文件(/document/doc.aspx)或整个文件夹(/document/)的路径。然后,您可以通过各种标准来锁定它,例如任何经过身份验证的用户、特定的角色、特定的用户。
查看您的web.config,并确保底部有以下内容(将其放在</runtime>和</configuration>之间
</runtime>
<!-- access permissions -->
<location path="/document/">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
</configuration>从本例中可以看到,我已经锁定了整个文件夹(path="/document/"),禁止任何未经身份验证的用户(<deny users="?"/>)访问。
https://stackoverflow.com/questions/5919595
复制相似问题