在XPage应用程序,我想存储的一些(保密的)信息applicationScope,使之成为所有用户访问.但是,应用程序的ACL配置为允许匿名用户读取公共文档.不过,我不希望他们有权访问applicationScope.匿名用户是否可以访问/读取applicationScope?
所有范围变量(包括applicationScope)都是内存上下文.在这种情况下,术语"范围"指的是每个可以访问的范围.
requestScope在单个HTTP请求的持续时间内,当前页面内执行的任何代码都可以访问该对象,此时该对象将被销毁.任何其他页面以及针对同一页面实例的任何后续请求都有各自独立的页面requestScope.
viewScope可以通过当前页面内执行的任何代码访问该页面实例的生命周期.其他页面 - 包括由同一用户访问的页面 - 都有自己的页面viewScope.同样,如果用户导航到另一个页面,然后导航回上一页,那就是新页面,viewScope因为它是页面的新实例.
sessionScope任何页面中执行的任何代码都可以在单个HTTP会话期间访问.这与浏览器中的会话cookie相关联,而不是与身份验证相关联.因此,如果匿名用户稍后登录,它仍然是相同的sessionScope.如果他们稍后注销,他们仍然会一样,sessionScope直到他们关闭浏览器或应用程序清除存储.
applicationScope可以通过当前应用程序中任何页面内执行的任何代码访问.这是什么使得它能够在用户之间共享:如果用户1访问app1.nsf/page1.xsp一台计算机上,而用户2访问相同的页面-或不同的页面-内同美国国家科学基金会,它们具有相同的applicationScope-变量是指精确相同的内存中对象对于用户-所以通过由一个用户执行的代码的存储的任何数据可以经由直到应用程序清除出存储由另一用户执行的代码进行检索.
BUT,如果用户1正在访问的任何页面中app1.nsf和用户2(或匿名)在访问任何页面app2.nsf,变量applicationScope是指不同为每个用户在内存中的对象,因为它们正在访问不同的应用程序,即使是在任一应用程序代码,访问其他应用程序中的磁盘数据.在内存中的对象,该对象的applicationScope变量是指在每个NSF,无论在哪里任何不同的磁盘上它可以访问或创建数据恰好被存储.
所以你(和其他人写在同一NSF代码)仍然需要勤奋你如何组织你的逻辑,以避免存储敏感信息applicationScope,然后将其暴露给谁不应该访问它的用户,但你不知道需要担心从访问相同内存范围的其他应用程序执行的代码.applicationScope如果代码是从同一个NSF执行的,代码只能读取您存储的数据.
| 归档时间: |
|
| 查看次数: |
248 次 |
| 最近记录: |