【c# – P / Invoke声明不应该是安全关键的】教程文章相关的互联网学习教程文章

使用C#.NET中的OCX进行线程安全【代码】

我作为开发人员已经有一段时间没有使用OLE / COM,但我目前需要使用C#程序中的一些第三方OCX代码库. C#程序使用线程(它是一个TCP套接字服务器). OCX标记为公寓线程模型.从我的阅读中,我得出结论,如果我小心地为每个线程创建每个OCX的一个实例,并且只从创建它的线程中使用该实例,我应该没问题. 我也做了: – myThread.SetApartmentState(ApartmentState.STA);在开始每个线程之前. 这应该足以确保安全使用OCX吗? 我看到的症状是线程...

c# – ConcurrentDictionary和Clear() – 函数.使值导出线程安全而不会丢失数据【代码】

任何使ConcurrentDictionary线程安全的想法,其中值被导出到列表ex,并在该字典被清除之后.这样任何其他线程都无法在导出和清除之间添加数据. 像这样:“List<data> list; list = (List<data>)_changedItems.Values; //get values before clearing _changedItems.Clear();“并且使用函数_changedItems.AddOrUpdate通过其他线程完成添加 现在,如果某个线程在清除行之前将数据对象添加到集合中,则有可能在从字典中获取数据和清除内容之...

c# – 使用DirectoryServices.AccountManagement,如何获取活动目录安全组的电子邮件地址?【代码】

我在活动目录中有一个安全组(如下图所示),该组具有与之关联的电子邮件地址.如何获取该组的电子邮件地址? GroupPrincipal对象上没有任何电子邮件地址属性. 这就是我检索所有组的方式:using (PrincipalContext context = new PrincipalContext(DirectoryContextType, Domain)) {using (var groupSearcher = new GroupPrincipal(context)) {using (var searcher = new PrincipalSearcher(groupSearcher)) {foreach (GroupPrincipal ...

c# – 安全存储密码的最佳方法

在计算机上保存密码以便无法访问密码的最佳方法是什么?我想将它们存储在加密的注册表中.我希望您能够重置密码,但这不适用于服务器.这是为了将它们存储在计算机上以便记住它们并自动登录. 重要编辑:我需要能够从程序中检索纯文本密码,而不是其他任何地方.解决方法:CryptProtectData和CryptUnprotectData是Windows上最好的选择.他们使用登录凭据加密数据,因此密码可以安全地免受对磁盘的攻击.但是,任何在同一用户下运行的程序都可以...

c# – 以下线程是否安全?【代码】

我有以下代码,并想知道它是否是线程安全的.我只在我从集合中添加或删除项目时锁定,但在迭代集合时不锁定.迭代时锁定会严重影响性能,因为该集合可能包含数十万个项目.有什么建议可以使这个线程安全吗? 谢谢public class Item {public string DataPoint { get; private set; }public Item(string dataPoint){DataPoint = dataPoint;} }public class Test {private List<Item> _items; private readonly object myListLock = new obj...

c# – 为什么在某些值类型的数组之间进行转换似乎打破了类型安全性?【代码】

参见英文答案 > Why does my C# array lose type sign information when cast to object? 4个以下代码:object array = new int[] {-1}; Console.WriteLine("array is uint[]: {0}", array is uint[]); Console.WriteLine("array[0]: {0:X}", ((uint[])array)[0]);打印以下内容,没有任何错误:array is uint[]: Truearray[0]: FFFFFFFF这似乎是我所特有的,因为它似乎打破了类型安全.执行以下操...

c# – .NET TPL数据流源中的线程安全【代码】

出于好奇,我正在查看.NET TPL的“数据流”库的某些部分的实现,我遇到了以下片段:private void GetHeadTailPositions(out Segment head, out Segment tail,out int headLow, out int tailHigh){head = _head;tail = _tail;headLow = head.Low;tailHigh = tail.High;SpinWait spin = new SpinWait();//we loop until the observed values are stable and sensible. //This ensures that any update order by other methods can be ...

c# – XmlSerializer保存临时文件的最安全的地方【代码】

我注意到XmlSerializer需要使用磁盘空间来进行出价.如果没有可写的%temp%文件夹,则它会失败并显示错误,如下所示:Source : System.Xml Message : Unable to generate a temporary class (result=1). error CS2001: Source file 'C:\Windows\TEMP\c1ls4elp.0.cs' could not be found error CS2008: No inputs specified StackTrace : at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSeri...

c# – 如何知道双字符串是否是往返安全的?【代码】

我有一个双重文本表示,并想知道它是否可以安全地往返双重和返回.如果我还想接受任何类型的数字输入,我怎么知道这个?或者,当使用Double.Parse解析双字符串时,如何知道是否有任何精度丢失?或者我如何ToString一个double来匹配与另一个双字符串相同的格式?任何这些问题的答案都是我认为的解决方案.解决方法:使用R格式说明符将double转换为字符串:myDouble.ToString("R")请参阅MSDN上的The Round-trip (“R”) Format Specifier.Th...

c# – 使用表达式从Lambda创建安全的深层属性访问器【代码】

我的目标是使用Lambdas创建一个属性绑定对象,可以安全地检索深属性值.通过安全,如果以前的属性之一为null而不是抛出空引用异常,则返回属性类型的默认值. 方法签名:public static Func<TO, TP> BuildSafeAccessor<TO, TP>(this Expression<Func<TO, TP>> propertyExpression) where TO: class { }*编辑:澄清我的问题 所以,如果我打电话:var safeAccessor = BuildSafeAccessor<Person>(p => p.Address.Zip);当调用safeAccessor时,...

c# – 在单个BackgroundWorker上运行多个DoWork功能是否安全?【代码】

我正在使用已建立的代码库,我想将正在完成的一些工作移到一个单独的线程中.代码当前结构的方式我想做的事情如下:var backgroundWorker = new BackgroundWorker(); backgroundWorker.DoWork += firstFunctionToDoSomeWork; backgroundWorker.DoWork += secondFunctionToDoSomeWork; backgroundWorker.RunWorkerCompleted += theWorkerCompletedFunction; backgroundWorker.RunWorkerAsync();我希望两个DoWork函数按顺序运行,firstF...

c# – .NET请求已中止:无法创建SSL / TLS安全通道【代码】

我已经尝试过我为这个问题遇到的所有假设解决方案,但似乎没有任何效果.以下是蒸馏的跟踪日志(一个用于尝试与Paypal通信,另一个用于尝试与GetSentry通信):System.Net Information: 0 : [10776] SecureChannel#49633458::.ctor(hostname=svcs.sandbox.paypal.com, #clientCertificates=0, encryptionPolicy=RequireEncryption) System.Net Information: 0 : [10776] SecureChannel#49633458 - Left with 0 client certificates to c...

从C#中IPv6安全的IP字符串中删除端口【代码】

对于在ASP.NET MVC上运行的rest API中发出请求的用户,我需要没有端口的IP.看来获取地址的方法是这些的组合:HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] HttpContext.Current.Request.UserHostAddress;哪个给我一个IP字符串:端口 IPV4很简单,但从阅读中我期望IPV6会给我这样的东西:[1fff:0:a88:85a3::ac1f]:8001IPAddress.Parse可以使用端口处理IPv6,但不能处理带有奇怪端口的IPv4. 我可以检查字符串以...

c# – 这段代码实际上是线程安全的吗?【代码】

我有一个关于以下代码段的问题,我在Microsoft的C#教程网页上找到了该代码段.在代码中,它们提供了任务演示.在事件处理程序中,他们创建一个更新未受保护的集合的任务. 这段代码是线程安全的吗?在我看来,事实并非如此.使这段代码线程安全的最佳方法是什么?private ArrayList students = new ArrayList(); private void btnCreateStudent_Click(object sender, RoutedEventArgs e) {Student newStudent = new Student();newStudent.F...

安全漏洞系列(一)---XSS漏洞解决方案(C# MVC)【代码】【图】

参考地址:https://www.cnblogs.com/sagecheng/p/9462239.html 测试项目:MVCDemo 一、XSS漏洞定义XSS攻击全称跨站脚本攻击,它允许恶意web用户将代码(如:html代码)植入到页面上,当访问到该页面时,嵌入到页面的html代码会自动执行,从而达到恶意攻击的目的。 二、解决方案1.新建立一个XSSHelper帮助类 1 public static class XSSHelper2 {3 /// <summary>4 /// XSS过滤5 /// </summary>6 ...