草庐IT

安全分析

全部标签

c# - Entity Framework 的行级安全性

我一直在考虑如何使用EntityFramework实现行级安全性。这个想法是让数据库不可知,这将提供方法来限制来自ObjectContext的行。我最初的一些想法涉及修改由EDMGEN工具创建的部分类,这提供了一些有限的支持。用户仍然可以通过使用他们自己的eSQL语句和QueryObject来绕过这个解决方案。我一直在寻找一个全面的解决方案,该解决方案将存在于数据库提供商之上,以便它保持不可知。 最佳答案 当然可以。重要的是阻止对对象上下文的直接访问(防止用户构建自己的ObjectQuery),而是为客户端提供一个更窄的网关,在该网

c# - 如何抑制对生成代码的代码分析?

我有一个Silverlight项目,其中包含服务引用所在的生成的Reference.cs文件。该类具有[GeneratedCode]属性,并且在项目配置中禁用了对生成代码的代码分析(发布和调试)。我做错了什么? 最佳答案 也许您应该尝试适用于StyleCop的解决方案:Put".Designer.cs"totheendofthenameofthefileyoudon’twantStyleCoptocheck.Orcallthethe[sic]class,andthefilecontainingit,"NativeMethods".M

c# - 通过nuget包添加代码分析规则集

我正在尝试构建一个自动添加我们公司的代码分析字典并可更新的NuGet包。规则集添加到content文件夹中,现在我想使用install.ps1脚本将规则集添加到项目文件中。我想出了使用envDTE的方法,但是除了这个我找不到CodeAnalysisRuleset节点的压倒性对象图之外,我找不到太多关于它的有用文档。http://msdn.microsoft.com/en-us/library/za2b25t3(v=vs.100).aspx我走的路对吗?有没有关于如何在NuGetpowershell中使用envDTE的相关教程/文档?如何运行/调试我的安装脚本,而不必将其实际添加到包中并

C# 将小数安全地转换为 int

我正在尝试安全地将小数转换为整数。有点像publicstaticboolDecimal.TryConvertToInt32(decimalval,outintval)如果无法转换为整数,则返回false,如果可以,则返回true并成功输出。这是为了避免在decimal.ToInt32方法中捕获OverflowException。最简单的方法是什么? 最佳答案 这里:publicstaticboolTryConvertToInt32(decimalval,outintintval){if(val>int.MaxValue||val

c# - 如何使用 OWIN 安全中间件在应用程序中设置 NameClaimType

我已经创建了一个OWINWeb应用程序,它使用OpenIdConnect通过Microsoft.Owin.Security.OpenIdConnect进行身份验证。虽然身份验证有效,但我发现创建的ClaimsIdentity.Name成员为空。ClaimsIdentity似乎希望在声明中提供名称:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name但是,ThinktectureIdentityServerv3提供的名称只是:nameIfindthisisconfigurableviaNameClaimTypeinolder

c# - 在不锁定集合的情况下从通用集合中获取 Count 值是安全的吗?

我有两个线程,一个生产者线程将对象放入通用列表集合中,另一个消费者线程将这些对象从同一个通用列表中拉出。我已经使用lock关键字正确同步了对集合的读取和写入,并且一切正常。我想知道是否可以在不先锁定集合的情况下访问Count属性。JaredPar引用计数属性inhisblog作为可能导致竞争条件的决策程序,如下所示:if(list.Count>0){returnlist[0];}如果列表中有一个项目,并且在访问Count属性之后但在索引器之前删除了该项目,则会发生异常。我明白了。但是使用Count属性可以确定一个完全不同的集合的初始大小吗?MSDNdocumentation说实例成员不

c# - 在属性中公开 IEnumerable 是否安全?

如果我公开一个IEnumerable作为一个类的属性,它是否有可能被类的用户改变,如果是的话,什么是防止改变的最好方法,同时保持暴露属性的类型IEnumerable? 最佳答案 这取决于您返回的内容。如果你返回(比如说)一个可变的List那么客户端确实可以将其转换回List并对其进行变异。如何保护您的数据取决于您从什么开始。ReadOnlyCollection是一个很好的包装类,假设你有一个IList开始。如果您的客户不会从实现IList的返回值中受益或ICollection,你总是可以做这样的事情:publicIEnumerabl

c# - Visual Studio 代码分析规则 - "Do not expose generic lists"

Donotexposegenericlists如果我所有的方法都需要公开一个集合,那么我需要使用LinqExtension.ToList(),几乎所有我需要使用列表的地方,或者我所有代码中的用户集合。如果是这样的话,.ToList()是在忽略规则吧?或者是否有一种技术,例如复制列表o来解决违规问题并仍然返回列表? 最佳答案 我禁用了该规则,因为我觉得它无效。如果你想返回一个包含O(1)的集合count并且不是对内部字段的直接引用,List是最好的选择。我不太了解您的情况,但听起来您有一种方法可以返回对某些内部数据的LINQ查询。如果

c# - 为什么 DateTime.Now 需要线程安全?

我正在阅读Joe的AlbahariC#threadingtutorial:作者解释了为什么DateTime.Now需要线程安全:Wrappingaccesstoanobjectaroundacustomlockworksonlyifallconcurrentthreadsareawareof—anduse—thelock.Thismaynotbethecaseiftheobjectiswidelyscoped.Theworstcaseiswithstaticmembersinapublictype.Forinstance,imagineifthestaticpropertyontheD

C# 单例线程安全

我有一个类似这样的单例类publicclassSingleton{privatestaticSingletonm_instance;privateTimerm_timer;privatestaticListm_cacheObjects;privateSingleton(){m_cacheObjects=newList();m_timer=newTimer(MyTimerCallBack,null,TimeSpan.FromSeconds(60),TimeSpan.FromSeconds(60));}publicstaticSingletonInstance{get{if(m_insta