GVKun编程网logo

我应该将我的PHP5对象存储在SPEED会话中吗,为什么?

8

本文将介绍我应该将我的PHP5对象存储在SPEED会话中吗,为什么?的详细情况,。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于asp.net–用户角色–为什

本文将介绍我应该将我的PHP5对象存储在SPEED会话中吗,为什么?的详细情况,。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于asp.net – 用户角色 – 为什么不存储在会话中?、asp.net-mvc – 我应该将.edmx和生成的POCO类放在哪一层?、asp.net-mvc-3 – 我应该将我的实用程序类放在ASP.NET MVC3应用程序中?、c – 我应该将父指针存储在树/图节点中吗?的知识。

本文目录一览:

我应该将我的PHP5对象存储在SPEED会话中吗,为什么?

我应该将我的PHP5对象存储在SPEED会话中吗,为什么?

如您所知,当您在SESSION中存储类定义时,它会自动序列化,并且在随后的每个页面中都未序列化.

我刚刚开始写类,我想知道:
在会话中存储类或通过序列化存储文​​件是一个好主意?

如果是,如何存储然后获取以使用PHP5中的类?

解决方法:

在会话中存储对象实例具有以下缺点:

>性能开销:即使您不需要某些对象,也会在每个请求中对它们进行反序列化和无效化.
>开发中的奇怪错误:无论何时从对象中添加或删除属性,会话中的实例都将与对象定义不匹配.
>安全性:通常,会话数据与应用程序分开存储.有时,此位置不像其他文件那样受访问保护和安全.
>数据复制和错误状态:使用会话,您可以为不同的用户反复存储相同的对象.与专用对象高速缓存(每个对象仅存储一次)相比,这导致存储需求增加,并且由于在另一个会话中更改了状态,因此对象具有错误状态的可能性也增加了.

我宁愿将对象存储在专用缓存中.让我们看一下Zend Cache类,作为一个良好的缓存库的示例.

如果您的对象使用资源(数据库连接,文件,GD图像),则您的类应实现Serializable接口.然后,您必须添加两种执行清理和初始化工作的方法.

asp.net – 用户角色 – 为什么不存储在会话中?

asp.net – 用户角色 – 为什么不存储在会话中?

我正在将一个ASP.NET应用程序移植到MVC,并且需要存储与授权用户有关的两个项目:角色列表和可见项ID的列表,以确定用户可以看到或看不到的内容.

过去,我们已经将WSE与Web服务结合使用,这使得令人难以置信的复杂和不可能正确调试.现在我们正在挖掘我正在寻找的Web服务,以便大大简化解决方案,只需将这些内容存储在会话中.一位同事建议使用角色和会员提供商,但是考虑到这一点,我发现了一些问题:

a)WSE遇到类似但不同的问题,因为它必须以非常有限的方式使用,即使编写测试也是棘手的;

b)RolesProvider的唯一缓存选项是基于我们基于安全理由拒绝的cookies;

c)它不引起并发症和额外的不必要的行李的结束;

所有我们想要做的,简而言之,在用户的会话中存储两个字符串变量,或者以安全的方式存储相同的东西,并在需要时引用它们.似乎是十分钟的工作,到目前为止已经进行了几天的调查,并且复合了我们现在发现的会话ID显然是伪造的问题,

http://blogs.sans.org/appsecstreetfighter/2009/06/14/session-attacks-and-aspnet-part-1/

我认为没有简单的方法来做这个非常简单的工作,但我发现不可能相信.

任何人都可以

a)提供有关如何使ASP.NET MVC会话安全的简单信息,因为我一直相信他们?

b)建议另一种简单的方法来存储这两个字符串变量,用于登录的用户角色等,而不必像上述那样替换另一个复杂的噩梦?

谢谢.

解决方法

将用户角色信息存储在服务器端会话中是安全的,提供会话不能被劫持.更广泛地说,如果被认证的会话被劫持,用户角色信息的存储并不重要.

我建议不要太过信仰你链接的文章,但是从你的链接链接的2002年的老式报告是有意义的.这是我的搭档:

>不接受内嵌在网址中的会话ID.>专注于消除跨站脚本的危险,即扫描所有用户提供的数据并解析可执行的java脚本.>发布完整网域的Cookie(例如myapp.mydomain.com)>在高级DNS操作符(例如,一个只允许从预设的远程IP地址进行DNS更改.>不要发出持久的会话cookie.>如果有人到达具有已经与认证会话相关联的会话ID的登录页面,则重新发布会话cookie.>更好的是,在成功认证时总是发出新的会话cookie,并放弃先前的会话. (可以在IIS中配置吗?)

asp.net-mvc – 我应该将.edmx和生成的POCO类放在哪一层?

asp.net-mvc – 我应该将.edmx和生成的POCO类放在哪一层?

这是关于使用EF DB First模型的分层设计.

到目前为止,我之前没有使用过实体框架,只使用实体并放置在具有域/ DTO子文件夹的不同项目中.在DataAccessLayer,业务层和MVC应用程序中也引用相同的内容,并使用通常的ADO.Net查询编写代码并准备我的实体的POCO.没有问题.

现在我们正在使用Entity Framework DB First模型开发应用程序.我们选择这个DB First模型,因为DB Design不在我们的控制之下.它由DBA完成.

我想在这里重复使用旧的简单设计.但不确定我应该在哪个/哪个层完全适合edmx文件和生成的POCO类.我没有找到任何具有分层架构风格的样本使用DBFirst方法.

我提到了这个. http://aspnetdesignpatterns.codeplex.com但他们使用NHybernate

这是旧设计的高级概述.

有关设计/样品的任何建议,欢迎您.

编辑:

从下面的答案中,我认为实体框架产生了POCO,我们可以将现有的Entities / Domain层重命名为Domain Layer,并将生成的POCO类放在那里.此外,我们可以简单地将DataAccessLayer中的.edmx保存为包含EF for TDD的IRepository类列表.这是否有意义?还是有价值的?

更新:

Currently i removed DataAccessLayer and keep only Entities layer which
has a model.edmx file and classes generated by EF and also all
Repository classes implementing IRepository. I refer this into
Business Layer,MVC as well. Am i doing right? I feel like i am doing
a bad design

总结

以上是小编为你收集整理的asp.net-mvc – 我应该将.edmx和生成的POCO类放在哪一层?全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

asp.net-mvc-3 – 我应该将我的实用程序类放在ASP.NET MVC3应用程序中?

asp.net-mvc-3 – 我应该将我的实用程序类放在ASP.NET MVC3应用程序中?

我正在使用C#和Razor在ASP.NET MVC3中开发一个Web应用程序.

我需要创建一个实用程序类,我在其中放置函数将字符串转换为日期(年,月,日等等).

在ASP.NET Web窗体中,我曾经将这种类放在App_Code文件夹中.在MVC中没有这样的文件夹,我不认为实用程序类既不属于Models也不属于Helpers(我创建的文件夹,用于将我的扩展放在HTML Helpers上).

我读到将实用程序类放在不同的程序集中是一种很好的做法.我想一个不同的项目应该做的工作,但我应该创建什么样的项目?普通的类库项目对我来说似乎是最合乎逻辑的选择.

但是在我的情况下,我只需要使用多个方法放置一个单独的类,因此,如果我们忽略了可重用性,那么将实用程序类放在我的MVC3 Web应用程序中的某个地方是不是更合乎逻辑?

解决方法

你不应该有实用程序类.将它们转换为更好的扩展方法.查看模型甚至更好.

我经常为管道创建一个名为“HtmlHelpers”或“Infrastructure”的文件夹.

“Common”文件夹就像垃圾桶imho.你把所有的垃圾都放进去了.

更新

我将它放在DateTime的扩展方法中(放在名为DateTimeExtensions的类中,该类放在名为Infrastructure的名称空间中).

我会在视图模型内部或在生成视图模型时(在控制器中)使用它.

至于哪个项目,它并不重要.重要的是你得到了具有特定任务(或职责)的小班.

有些人认为你应该有几个具有不同职责的类库.我不这样做.我为业务逻辑创建了一个UI项目和一个项目.但是,我确保这些类实现了一个或多个接口,以便以后能够重构应用程序. KISS也应该适用于项目结构,而不仅仅是其中的代码.

换句话说:我会将我的助手放在Core(业务逻辑项目)中名为Infrastructure的名称空间中.

c – 我应该将父指针存储在树/图节点中吗?

c – 我应该将父指针存储在树/图节点中吗?

我正在开发一个像数据结构的树/图.
它应该更像是有向无环图.
其中一个要求是找到从根到特定节点的路径,这意味着当用户选择一个节点时,将突出显示来自根的路径.

那么,问题是我应该在每个节点中存储父指针吗?
或者更普遍的问题是我应该何时在每个节点中存储父指针?
有哪些优点和缺点?

提前致谢!

PS.父指针==指向父节点的指针.

解决方法

通常,只有在要使用需要它的算法时才将指针存储回父级.否则,在用于存储指针的内存和在插入节点或重新平衡/重新组织树时更新这些指针的额外复杂性方面都是不必要的开销.

与树一起使用的典型算法(广度优先和深度优先搜索和遍历)不需要父指针,这就是为什么普通的普通树实现通常不包括它们.

您的“从根突出显示路径”要求可能会使父指针变得有用,尽管还有其他方法可以实现它.通常,应该避免将冗余信息放入数据结构中,直到证明它们是出于性能原因而必需的.

我们今天的关于我应该将我的PHP5对象存储在SPEED会话中吗,为什么?的分享已经告一段落,感谢您的关注,如果您想了解更多关于asp.net – 用户角色 – 为什么不存储在会话中?、asp.net-mvc – 我应该将.edmx和生成的POCO类放在哪一层?、asp.net-mvc-3 – 我应该将我的实用程序类放在ASP.NET MVC3应用程序中?、c – 我应该将父指针存储在树/图节点中吗?的相关信息,请在本站查询。

本文标签: