草庐IT

安全局

全部标签

c# - C# 中的空合并运算符 (??) 是线程安全的吗?

以下代码中是否存在可能导致NullReferenceException的竞争条件?--或--Callback变量是否可以在null合并运算符检查null值之后但在调用函数之前设置为null?classMyClass{publicActionCallback{get;set;}publicvoidDoCallback(){(Callback??newAction(()=>{}))();}}编辑这是出于好奇而提出的问题。我通常不会这样编码。我不担心Callback变量变得陈旧。我担心DoCallback会抛出Exception。编辑#2这是我的类(class):classMyClass{A

c# - 安全异常 : Request for the permission of type 'System.Net.Mail.SmtpPermission'

这是“在本地工作,在服务器上不工作”的帖子之一。我有一个发送电子邮件的简单联系表单。在服务器上,我得到以下异常:SecurityExceptionDescription:Theapplicationattemptedtoperformanoperationnotallowedbythesecuritypolicy.Tograntthisapplicationtherequiredpermissionpleasecontactyoursystemadministratororchangetheapplication'strustlevelintheconfigurationfile.Ex

c# - IEnumerable<T> 线程安全?

我有一个填充List的主线程.此外,我创建了一个将在不同线程上执行的对象链,需要访问列表。原始列表生成后将永远不会被写入。我的想法是将列表传递为IEnumerable到在其他线程上执行的对象,主要是为了不允许那些实现这些对象的人错误地写入列表。换句话说,如果保证不写入原始列表,多线程使用.Where是否安全?或foreach在IEnumerable上?如果原始集合从未更改,我不确定迭代器本身是否是线程安全的。 最佳答案 IEnumerable无法修改。那么什么可以是非线程安全的呢?(如果您不修改实际的List)。对于非线程安全,您需

c# - 全局安装 Nuget 包

有没有办法全局安装Nuget包?我有一个Nuget包,我想在多个项目中使用它而无需为每个项目下载?每个项目都有自己的解决方案,并且独立于其他项目。 最佳答案 当前版本的NuGet使用全局包缓存。看看thedocumentation找出它在你机器上的位置。您还应该查阅NuGet配置文件文档,了解如何更新全局缓存位置。 关于c#-全局安装Nuget包,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

c# - 在 C# 中使用全局变量的最佳实践

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。Someoneoncesaid:a"globalvariable"isreallyavariableyoucreatetosimply"holdsomeinformation"becauseyourobjectmodelisweak,andyouhaven'tfounda"truepurpose"forthevariabletoexist.Globalvariablesarealmostalwa

c# - 屏幕截图安全桌面

我正在使用屏幕共享项目。我正在使用以下功能捕获桌面屏幕。它工作正常。但是每当securedesktoppromptingforelevation.它返回黑色/空白图像。但是当我turnoffsecureddesktop来自本地安全策略。它工作正常。有什么方法可以在不禁用本地安全策略的情况下捕获安全桌面。staticBitmapCaptureDesktop(){SIZEsize;Bitmapprintscreen=null;size.cx=Win32Stuff.GetSystemMetrics(Win32Stuff.SM_CXSCREEN);size.cy=Win32Stuff.GetS

c# - 预定义类型 'System.Threading.Tasks.Task' 在全局别名的多个程序集中定义

我刚刚建立了一个新的asp.netmvc4项目,结合使用最新的.net框架(4.5)和VisualStudio2012。在我添加了一些类、辅助项目等之后。我突然注意到我编译项目时收到5次相同的警告。警告指出:ASPNETCOMPILER:warningCS1685:Thepredefinedtype'System.Threading.Tasks.Task'isdefinedinmultipleassembliesintheglobalalias;usingdefinitionfrom'c:\ProgramFiles(x86)\ReferenceAssemblies\Microsoft\

c# - WPF API 能否在 WCF 服务中安全使用?

我需要采用客户端XAML(来自Silverlight)并创建一个与服务器端资源(高分辨率图像)合并的位图,并且可以使用WPF(DrawingContext等)轻松完成此操作。有人提到服务器端(托管在IISWCF中)使用WPF类似于在服务器上运行Office,这是一个非常糟糕的主意。WPF是为在服务器上运行而构建的吗?有哪些替代方案(尤其是使用xaml)?我需要注意什么(内存泄漏、线程等)? 最佳答案 在WCF后面使用WPF服务器端不等同于在服务器端运行Office!WPF作为一个整体只是几个DLL,实际上与使用任何其他库服务器端没有

c# - 如何使用 C# 安全地将数据保存到现有文件?

如何安全地将数据保存到C#中已存在的文件中?我有一些序列化到文件中的数据,我很确定直接保存到文件中不是一个好主意,因为如果出现任何问题,文件将被损坏并且以前的版本将丢失。这就是我到目前为止所做的:stringtempFile=Path.GetTempFileName();using(StreamtempFileStream=File.Open(tempFile,FileMode.Truncate)){SafeXmlSerializerxmlFormatter=newSafeXmlSerializer(typeof(Project));xmlFormatter.Serialize(tem

c# - 为什么(或不是)在构造函数中设置字段是线程安全的?

假设您有一个像这样的简单类:classMyClass{privatereadonlyinta;privateintb;publicMyClass(inta,intb){this.a=a;this.b=b;}publicintA{get{returna;}}publicintB{get{returnb;}}}我可以以多线程方式使用这个类:MyClassvalue=null;Task.Run(()=>{while(true){value=newMyClass(1,1);Thread.Sleep(10);}});while(true){MyClassresult=value;if(resul