【发布时间】:2012-11-10 01:14:12
【问题描述】:
为了停止会话共享,我使用了代码
<sessionState mode=”InProc” cookieless=”UseUri”></sessionState>
这很好,虽然我的 URL 很尴尬,但没关系。 我面临的问题是:如果用户已经登录到应用程序,并且如果用户直接在 Web 浏览器中复制并粘贴 URL 以打开页面,那么用户可以打开该页面,因为用户已经有一个活动会话。
但要求是限制复制和粘贴 URL 以打开页面。 在这种情况下,我们该怎么办?
我没有 .cs 页面,因为这是一个旧应用程序,我们有 .aspx 页面,带有 javascript/VB 脚本。
我在登录应用程序时遇到<sessionState mode="InProc" cookieless="UseUri"> 的另一个问题,如果用户直接复制 url 并将 URL 粘贴到 Web 浏览器中以在关闭第一个(我们复制 url 的位置)后打开页面仍然是用户无需登录即可打开页面。
示例:http://XXX/YYY/(S(fxiejp3mcnt3wwob3ytkmbf))/Home/FrameSet.aspx
如果我在关闭打开的窗口(我复制了这个 uRL)后粘贴上面的 URL,用户就可以打开应用程序。这似乎是错误。
请推荐
请推荐
【问题讨论】:
-
你为什么要关心用户登录后是否可以通过将 url 粘贴到地址栏中来打开页面?
-
编写自定义浏览器并实施一种安全方式来验证该浏览器是客户端应用程序。
-
有某种安全的会话 ID,存储在 url 和会话中。在页面加载时,它会检查两者是否相同,如果相同,则允许用户进入。然后它将重新分配一个新 var 并将其附加到所有 url。
-
你没有。当然,您可以制作一些花哨的 JavaScript 来禁用复制粘贴,但是通过简单地禁用 JavaScript 就很容易做到这一点。为什么不使用 cookie?
-
您无法通过将 URL 粘贴到地址栏中来阻止用户访问页面。你最好从 URL 中删除登录 ID(如果它目前是这样工作的)。如果您使用基于 URL 的身份验证,请不要。您不能指望网站完全控制在其计算机上本地运行的浏览器...
标签: c# javascript asp.net c#-4.0 session