小编Pab*_*bio的帖子

是否可以使用强大的命名程序集来验证程序集作者?

我一直在阅读MSDN,强名称程序集和相关的Stack Overflow问题中的正确文章,检查程序集的强名称.

  1. 在何种程度上可以验证强名称的装配以避免篡改?
  2. 是否可以使用强命名来验证程序集作者?

第一个问题出现在阅读CSharp411文章.NET程序集常见问题 - 第3部分 - 强名称和签名之后,其中提到了这一点,以及使用强名称的其他问题:

" 无法完全替换.强名称不能阻止黑客删除强名称签名,恶意修改程序集,用自己的密钥重新签名,然后将你的程序集作为你的程序. "

第二个问题旨在找出强命名和其他签名方案之间的差异,例如Authenticode.同样的MSDN文章提到了早期的状态:

"但请注意,强名称本身并不意味着一定程度的信任,例如通过数字签名和支持证书提供的信任. "

我是否尝试使用强命名,而不是创建它?创建强命名是为了避免名字冲突还是一种新的"GAC DLL Hell"?

.net security strongname assemblies

20
推荐指数
2
解决办法
6819
查看次数

您何时使用"受保护的内部"访问修饰符?

正如你可能已经知道,.NET框架的内部保护的访问修饰符工作在一种奇怪的方式:这并不意味着类是保护 内部,它说,类保护 内部 ; 也就是说,可以从同一程序集中以及从同一层次结构中访问修改后的类或成员.

所以,知道这个:你什么时候使用它?你能给我举个例子吗?.NET基类库中是否有一个很好的,有启发性的用法示例?

.net encapsulation access-modifiers

18
推荐指数
1
解决办法
6622
查看次数

保护Web API免受未经授权的应用程

我正在开发一个使用大量AJAX与服务器通信的网页.反过来,服务器具有广泛的REST/JSON API,公开Web客户端调用的不同操作.

匿名用户和经过身份验证的用户都使用此Web站点.正如您所料,经过身份验证的用户发出的Web服务调用需要身份验证,因此可以防止未经授权的用户或应用程序.

但是,该网站具有许多不需要身份验证的功能,其中一些功能使用匿名Web服务.我用来阻止外人调用此Web服务的唯一方法是使用CSRF令牌.我知道,CSRF令牌在这方面并不是很有用......有了一些时间,即使他们使用CSRF令牌,您也可以弄清楚如何使用Web服务.

当然,您可以使用CAPTCHA来防止应用程序或机器人自动使用您的Web服务.但是,任何人都可以使用它.

另一方面,在客户端和服务器之间共享密钥将是无用的.这是因为任何局外人都有能力从网页源代码中读取它.

我想使这些Web服务难以调用为任何第三方应用程序.除了使用CSRF令牌,你会做什么?这听起来有点愚蠢,但嘿,也许这是愚蠢的,我只是在浪费我的时间.

注意:鉴于此应用程序使用浏览器而不是"可执行文件"作为客户端,此问题与讨论无关.我不能在服务器和客户端之间使用秘密(至少我不知道)

ajax obfuscation web-services

11
推荐指数
1
解决办法
4282
查看次数

内存LINQ性能

不仅仅是关于LINQ [在这里插入您最喜欢的提供者],这个问题是关于搜索或过滤内存中的集合.

我知道LINQ(或搜索/过滤扩展方法)适用于实现IEnumerable或的对象IEnumerable<T>.问题是:由于枚举的性质,每个查询的复杂性至少为O(n)

例如:

var result = list.FirstOrDefault(o => o.something > n);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,除非按顺序排序,否则每个算法至少需要O(n),在这种情况下,搜索应采用O(log(n)):它应该是二进制搜索.但是,如果我理解正确,这个查询将通过枚举来解决,所以它应该采用O(n),即使以前订购过.list'something'list

  • 我可以做些什么来解决O(log(n))中的查询?
  • 如果我想要性能,我应该使用Array.Sort和Array.BinarySearch吗?

c# linq performance complexity-theory

8
推荐指数
1
解决办法
4507
查看次数

Azure平台:上下调整实例

注意:如果您熟悉Azure定价模型,请跳转到"问题"部分.

2010年2月1日开始,Microsoft将开始收取使用Azure平台的费用.每月账单将取决于带宽,存储和其他因素.用于计算账单的因素之一是计算时间.然而,后一个因素具有误导性的名称:它应该被命名为实例托管时间.引用windows azure定价页面:

在开发和测试应用程序时,开发人员将希望删除未用于最小化计算小时计费的计算实例

因此,您认为这不是计算时间,而是正常运行时间,您需要支付的费用.在MSDN论坛中阅读官方对此问题的回复后,疑问完全消失:

我可以确认每个实例(任何角色)都是重要的,并且您拥有实例活动计数的所有时间(无论他们有多少"活动").如果应用程序具有两个Web角色实例和两个辅助角色实例,则将为四个实例付费

每个实例每小时0.12美元,使用N个实例的应用程序将按每个实例的平均24*30*0.12*N /月=〜$ 86 /月计费.如果您希望99.9%的正常运行时服务水平协议适用,那么当您考虑到不能少于2个实例的事实时,小网站的情况就会恶化.

因此,一个小型,计算能力低廉的网站可能不是Azure的目标市场.但对于批处理过程,负担可能会消失.

仅就计算能力和"计算小时"计费而言,Azure是一个很好的托管选项,适用于每月只运行几个小时的批处理流程,当且仅当您可以扩展(和缩小!)数量时实例很容易.所以:

  • 是否可以以编程方式扩展和缩小Azure中的实例数量?除手动更改配置文件外还有其他选项吗?
  • 是否存在缩小实例数量的非明显问题?
  • Azure花了多少时间来"确认"缩减应用程序的时间?

关于后一个问题:假设你有大量实例(比如1000)运行45分钟的极端情况.如果Azure在流程结束后的15分钟内无法注意到缩小,则将向您收取另外1000个计算时间的费用.

cloud batch-file multiple-instances azure

6
推荐指数
1
解决办法
2269
查看次数

MVC或事件驱动的面向组件的Web框架?

这个问题打算与技术无关.您更喜欢哪种Web框架,何时:纯MVC或事件驱动的组件导向?

为了说明"技术不可知论",我在这里用不同的技术/语言命名了一些MVC与组件Web框架:

  • Struts Java Server Faces/Tapestry
  • 新的ASP.NET MVC "经典"ASP.NET
  • 蛋糕PHP PRADO

web-frameworks

5
推荐指数
2
解决办法
6292
查看次数

哪些iOS版本可以让您在不手动管理内存的情

可能重复:
有关iOS5 SDK中自动引用计数的一些问题

嗯,就是这样.

有人支持自动垃圾收集吗?哪个?

哪些iOS版本可以让您自己开发而无需管理内存?(即仅使用自动垃圾收集)

memory-management ios

0
推荐指数
1
解决办法
102
查看次数

Oracle 数据库中字符串列的常量时间索引

我有一个订单表。该表属于多租户应用,因此同一表中存在来自多个商家的订单。该表存储了数亿条记录。这个问题有两个相关的列:

  • MerchantID,一个存储商家唯一 ID 的整数
  • TransactionID,标识交易的字符串

我想知道是否有一个有效的索引来执行以下操作:

  • 对每个商家 ID 的交易 ID实施唯一约束。约束应在恒定时间内强制执行
  • 执行涉及两列精确匹配的恒定时间查询(例如,)SELECT * FROM <table> WHERE TransactionID = 'ff089f89feaac87b98a' AND MerchantID = 24

更多信息:

  1. 我正在使用 Oracle 11g。也许这篇 Oracle 文章与我的问题有关?
  2. 我无法更改列的数据类型。
  3. 常量时间是指以 O(1) 时间复杂度执行的索引。就像一个哈希图。

oracle indexing database-design hashmap database-performance

0
推荐指数
1
解决办法
764
查看次数