草庐IT

安全扫描

全部标签

c# - 如何安全地停止在 Windows 服务中运行的 C# .NET 线程?

我正在维护一些看起来像这样的代码。这是一项Windows服务,每30分钟执行一些工作。ActualWorkDoneHere方法需要大约30秒才能运行,但如果它在运行时停止,可能会使事情处于糟糕的状态。防止这种情况发生的最佳方法是什么?我应该用onstop方法中设置为false的bool值替换While(true)(删除线程Abort调用)吗?有什么方法可以判断线程是否正在休眠?namespaceWorkService{publicpartialclassWorkService:ServiceBase{privateThread_workerThread=null;publicWorkS

c# - 这个非锁定的 TryGetValue() 字典访问线程安全吗?

privateobjectlockObj=newobject();privateDictionarydict=newDictionary();publicstringGetOrAddFromDict(intkey){stringvalue;//non-lockedaccess:if(dict.TryGetValue(key,outvalue))returnvalue;lock(this.lockObj){if(dict.TryGetValue(key,outvalue))returnvalue;stringnewValue="valueof"+key;//placelongoperat

c# - 以线程安全的方式添加到 Parallel.ForEach 循环中的列表

我有一些代码在名为ListofObjects的obj对象列表上像这样工作:ListNewListofObjects();Parallel.ForEach(ListofObjects,obj=>//DosomeoperationshereonobjtogetanewobjNewListofObjects.Add(newobj););现在我退出了Parallel.ForEach循环,我想对NewListofObjects进行操作。但是,当我尝试执行以下操作时出现此错误:“尝试读取或写入protected内存。这通常表示其他内存已损坏”。这是因为我的NewListofObjects.Add(

c# - .net 中的线程安全队列(列表)

我需要为要添加到lucene索引的项目创建一个线程安全列表。下面的线程安全吗?publicsealedclassIndexQueue{staticreadonlyIndexQueueinstance=newIndexQueue();privateListitems=newList();privateIndexQueue(){}publicstaticIndexQueueInstance{get{returninstance;}}privateobjectpadlock=newobject();publicvoidAddItem(stringitem){lock(padlock){ite

c# - 如何证明 Dictionary 的 TryGetValue 的双重检查锁定模式不是线程安全的

最近我看到一些C#项目在Dictionary上使用双重检查锁定模式。像这样:privatestaticreadonlyobject_lock=newobject();privatestaticvolatileIDictionary_cache=newDictionary();publicstaticobjectCreate(stringkey){objectval;if(!_cache.TryGetValue(key,outval)){lock(_lock){if(!_cache.TryGetValue(key,outval)){val=newobject();//factorycon

百万赞同:网络安全为什么缺人? 缺什么样的人?

1.网络安全为什么缺人?缺人的原因是有了新的需求以前的时候,所有企业是以产品为核心的,管你有啥漏洞,管你用户信息泄露不泄露,我只要做出来的产品火爆就行。这一切随着《网络安全法》、《数据安全法》、《网络安全审查办法》等一系列有关网络安全的法律法规出台戛然而止,上到国家下到个人都开始重视网络安全,你看最近的国家对滴滴进行网络安全审查就引发的大家的强烈关注就能感受到。按照新的网络安全法律法规要求,你的企业出了网络安全问题,不仅要处罚企业,还要连带处罚企业负责人,甚至入刑。你想想哪个老板知道了这个问题的严重性能坐的住?所以就产生了网络安全人员缺口。2.缺什么样的人?**A.**大部分企业需要懂常规安全

c# - 如何在 WCF 中使用自定义绑定(bind)并使用用户名客户端凭据保持消息安全模式?

我可以通过Internet访问WCF服务,该服务使用wsHttpBinding和消息安全模式以及用户名客户端凭据。我发现将我的数据从客户端传输到服务器需要花费太多时间。我读到我可以为我的服务使用customBinding和binaryEncoding模式。像那样:但是这里没有提及消息安全模式和客户端凭证类型......我如何使用binaryEncoding的自定义绑定(bind)并使用用户名客户端凭据保持消息安全模式? 最佳答案 我知道这不是您要找的答案,但这是我的配置。我将自定义绑定(bind)与UserNameOverTrans

c# - 使用 System.IO.File 辅助方法的 "sequential"文件 I/O 是否安全?

我刚看到这个问题:IsitsafetousestaticmethodsonFileclassinC#?.总而言之,OP有一个IOException,因为此ASP.NET代码片段中正在使用文件:vartext=File.ReadAllText("path-to-file.txt");//DosomethingwithtextFile.WriteAllText("path-to-file.txt");我的第一个想法是,由于多个ASP.NET重叠请求,这是一个简单并发访问问题。我要解决的问题是将I/O集中到一个同步的线程安全类中(或删除文件以支持其他内容)。我阅读了这两个答案,当我正要对其中

c# - 如何在不同的安全上下文中启动线程?

如何在不同用户的安全上下文中启动线程?当进程正常启动线程时,安全上下文也会被传递,但如何使用不同用户的主体在不同的安全上下文中启动线程? 最佳答案 我相信你可以设置CurrentPrincipal作为线程启动后线程代码的第一个操作,然后才开始执行本应与其他主体一起运行的代码。这应该会处理任何基于.NET角色的检查。如果您还需要模拟来调用操作系统,您可以模拟WindowsIdentity。代码(可能有效也可能无效——没有测试):publicvoidRun(objectprincipalObj){if(principalObj==nul

c# - 注册表扫描类型的结构图拦截

我有一个使用Structuremap的ASPMVC4应用程序。我正在尝试通过Structuremap拦截向我的应用程序添加日志记录。在注册表中,我扫描一个特定的程序集,以便使用默认约定注册它的所有类型:publicclassServicesRegistry:Registry{publicServicesRegistry(){Scan(x=>{x.AssemblyContainingType();x.WithDefaultConventions();});}}拦截器:publicclassLogInterceptor:IInterceptor{publicvoidIntercept(II