草庐IT

数字安全

全部标签

c# - 带 3 个尾随小数位、十进制千位分隔符和逗号的格式数字

这可能是一个简单的问题,我相信有办法用string.format()、NumberFormatInfo、CultureInfo或它们的某种组合,但我需要显示带有3个尾随小数位的大数值,一个小数而不是千位分隔符的逗号,然后是百万分隔符及以上的逗号。输入是整数或后跟最多三位小数的数字(20000、123.456、12.2)例如:142650应该显示为142,650.00011200.50应显示为11,200.500123.456应该保持为123.456我想这与将值除以1000然后使用string.format("{0:f3}",value)是一样的,但我希望找到一些没有的东西算术。Stri

c# - 在不实际验证签名的情况下确定文件是否在 C# 中具有数字签名

有没有一种简单的方法可以检查文件上是否存在数字签名,而无需尝试验证签名所用的证书?我想对目录中的一长串exe和dll文件进行签名,但仅限于尚未签名的文件。例如,如果其中一个文件已由Microsoft或其他某个第3方签署,我不想使用我公司的证书再次签署它们。通过右键单击文件并查看其属性可以很容易地检查文件是否具有数字签名(如果出现数字签名选项卡则表明它已被签名)。我正在寻找一种使用C#检查此数字签名属性的简单方法。现在,我正在使用带有signtool.exe的验证命令-它不仅会检查数字签名是否存在,还会检查用于签署文件的证书是否由受信任的机构颁发。这是我执行此操作的简单但笨拙的方法:pr

c# - C# 中是否有泛型数字类型?

我真的很喜欢一个泛型数字类型作为Func的第二个泛型类型参数。下面给出,因此我可以根据需要提供整数或double或小数。var_resultSelectors=newDictionary>();//soIcando_resultSelector.Add("foo",(DateTimedt,intx)=>...);_resultSelector.Add("bar",(DateTimedt,doubled)=>...);_resultSelector.Add("gar",(DateTimedt,floatf)=>...);_resultSelector.Add("har",(DateTim

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# - .NET 中对以 1、10 和 2 开头的字符串进行排序并遵守数字顺序的最短方法是什么?

我需要按如下方式对文件名进行排序:1.log、2.log、10.log但是当我使用OrderBy(fn=>fn)时,它会将它们排序为:1.log,10.log,2.log我显然知道这可以通过编写另一个比较器来完成,但是有没有一种更简单的方法可以将字典顺序更改为自然排序顺序?编辑:目标是获得与在Windows资源管理器中选择“按名称排序”时相同的顺序。 最佳答案 您可以使用Win32CompareStringEx功能。在Windows7上,它支持您需要的排序。您将使用P/Invoke:staticreadonlyInt32NORM_I

c# - 如果使用 SingleOrDefault() 并在数字列表中搜索不在列表中的数字,如何返回 null?

当使用SingleOrDefault()查询正数列表时,如果在列表中找不到数字而不是返回null或自定义值(如-1)类型的默认值(在本例中为0)? 最佳答案 你可以使用:varfirst=theIntegers.Cast().SingleOrDefault(i=>i==theValue)??valueIfNotFound;这通过将项目转换为Nullable来实现,然后使用null-coalescingoperator如果null返回您选择的值被退回(即:未找到)。请注意,如果您有多个匹配项,则会抛出此异常。如果您不想要这种行为,请使

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