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

c# – 与NHibernate的开发人员安全的双向关系【代码】

我知道如何映射与NHibernate的双向关系,但有没有人知道一种有效的技术,使他们’开发人员安全’. 我的意思是,只要关系的一端建立,另一端也应该设置,例如:[Test] public void TestBidirectionalRelationships_WhenAddingOptionToProduct() {var product = new Product();var productOption = new ProductOption();product.AddOption(productOption);Assert.That(product.Options.Contains(productOption));Assert.That(productOptio...

c# – 指向Byte []数组的不安全Int32指针【代码】

我有一个字节数组,我想通过Int32指针访问(不安全的上下文).我这样做byte[] bgImageBytes = new byte[1000]; unsafe {fixed (byte* bgImgPtr = bgImageBytes){// I have a byte pointer ... How can I get an Int32 pointer?} }我已经将从kernel32.dll返回的指针作为Byte和Int32指针访问,没有任何问题.但是当我尝试在托管字节数组上创建一个Int32指针时(上面的示例),它似乎抱怨它是托管代码,所以它不起作用. 简单地做UInt32 * bgImg...

c# – 如何使用不同类型的单个元素创建类型安全的数组或集合?

我正在C#中实现一个方法,它接受一个类型为object的参数,例如SomeMethod(对象参数).我需要将不同类型的多个对象的集合传递给此方法.由于接口限制,我无法更改方法签名. 我在考虑发送一个对象数组,object [] myArray = new object [2],但是如果可能的话我想强烈地键入数组的每个元素.例如,我有两个对象,一个是Foo类型,另一个是Bar.我想保证myArray [0]是Foo而myArray [1]是Bar. 我该怎么做?另一个集合类型或创建特殊类会更有意义吗?...

c# – 在静态方法线程安全中使用foreach而不是HttpContext.Current吗?【代码】

记住这些 –HttpContext.Current –Foreach 我无法绕过这个问题……这个代码在ASP.NET中是“线程安全的”吗?public static bool IsCookieMissing() {foreach (string cookieKey in HttpContext.Current.Request.Cookies.AllKeys){if (cookieKey.EndsWith("cookie_name")){return false;}}return true; }解决方法:Is this code “thread safe” in ASP.NET?这取决于你期望它做什么.它最有可能做你期望做的事情,因此它是“线程安全的...

c# – 如何在Webbrowser控件中禁用“安全警告”窗口【代码】

我正在使用Webbrowser控件登录HTTPS站点.但我得到弹出“安全警告”: 下面的代码不起作用.为什么?ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors){return true;}我应该把这些代码放在哪里? stac...

使用不安全的C#代码可以破坏或混淆字符串池吗?【代码】

如果我通过在不安全的代码块或方法中使用指针来操作托管的C#字符串(例如,反转其字符),那么不安全的实现是否会混淆或破坏.NET字符串池机制? 正在操作的建议字符串是在托管代码中创建的,并传递给不安全的方法进行操作. 此方案的示例:static void Main(string[] args) {string s = "this is a test";UnsafeReverse(s);Console.WriteLine(s); // displays "tset a si siht"// assume more managed strings are created and used alon...

c# – 标记PropertyChangedCallback异步是否安全?【代码】

我在类上有一个依赖属性,我们称之为’SomethingControl’:public static readonly DependencyProperty SomethingProperty = DependencyProperty.Register("Something", typeof(Something), typeof(SomethingControl), new UIPropertyMetadata(SomethingGotSet));我已经定义了作为异步传递到UIPropertyMetadata构造函数的回调方法:private async static void SomethingGotSet(DependencyObject d, DependencyPropertyChangedEvent...

c# – 极端线程安全集合【代码】

我在.Net 4.5中有一个ConcurrentBag,我从数据库中存储了大约4,000行.我正在存储DTO. 我的整个应用依赖于此.我有返回整个列表的函数,还有返回单个项目的函数.我的代码中有很多地方我正在对集合进行LINQ查询等. 我将它全部投入生产,在现场获得可观的流量,并立即100%cpu.我使用了iis诊断工具,果然,死锁中有50个线程,等待ConcurrentBag. 文档说这个集合是线程安全的,但要么不是这样,要么这个集合的性能不好,从而间接地使它不是线程安全...

c# – 线程安全事件 – 这是一种“干净”的方式吗?【代码】

我偶然发现了专业库中的一些代码,并且不确定这是否是一种处理跨线程事件调用的简洁方法. 下面的代码在表单应用程序中.线程调用是从一个本身启动新线程并接收消息的类中进行的:private void Library_StatusChanged(object sender, AbstractTestCase.StatusChangedEventArgs e) {if (this.InvokeRequired){this.lblProgress.Invoke((MethodInvoker)delegate (){lblProgress.Text = "Current state: " + e.Step;lblProgress.Refresh(...

c# – 当您知道无效证书是安全的时,测试X509Certificate.Thumbprint属性是否安全?【代码】

我正在尝试使用SmtpClient.Send以编程方式发送电子邮件.我正在尝试发送电子邮件时收到AuthenticationException.这是因为证书验证程序失败. 我知道证书是正确的,但我也理解,信任所有证书并不安全,就像这样做的建议:ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => { return true; };所以我想知道测试Thumbprint是否有足够的安全性,如下:ServicePointManager.Serve...

c# – 有没有办法使用ASP.NET通过Google Apps帐户发送电子邮件而不选择“允许安全性较低的应用”选项?【代码】

我有一个ASP.NET Web API,我正试图用来发送电子邮件.我正在使用smtp.gmail.com和587获取身份验证问题.我看到有几个链接说要在我的Google Apps帐户上切换“允许不太安全的应用”选项,但我宁愿不必向所有者解释为什么他们需要选择这个可疑的声音设置. 有没有办法在ASP.NET中打包一个Google想要的电子邮件请求,还是我必须选择“允许安全性较低的应用程序”选项? 这是我正在使用的Google不喜欢的代码.using (var client = new SmtpCli...

c# – 哈希算法SHA256,我的方法安全吗?如何添加salt值以提高安全性【代码】

我对密码学很陌生,想要了解哈希算法. 我有以下来源创建一个密码的哈希版本,可以存储在我的数据库中.public static string hashPasswordGenerator(string password){System.Security.Cryptography.SHA256Managed crypt = new System.Security.Cryptography.SHA256Managed();StringBuilder hash = new StringBuilder();byte[] cry = crypt.ComputeHash(Encoding.UTF8.GetBytes(password), 0, Encoding.UTF8.GetByteCount(password));...

c# – 从不同的线程更新对象的不同属性是否安全?【代码】

考虑下面的伪代码.我有一个具有3个属性的类,每个属性并行填充不同的方法. 我是否会遇到从单独的线程填充同一类实例的不同属性的问题?我已经设置了.net fiddle,看起来它运行正常. 如果此代码会导致线程问题,那么在填充属性时我应该使用什么方法来锁定Response类的特定实例?class Response {public string Response1 { get; set; }public string Response2 { get; set; }public string Response3 { get; set; } }void foo() {var r...

c# – XmlSchemaSet的架构验证错误/线程安全性?【代码】

下午好, XML模式验证代码段在开发/ q& a环境中正常工作,但在Production中产生了一些奇怪的验证结果.通常的怀疑是代码对于线程是不安全的,并且生产方案的额外负载正在清除错误. 具体情况如下.考虑验证的XML是:<mssql:spExecute type="ResultSet" xmlns:mssql="urn:namespace"><mssql:actor>IPASS</mssql:actor><mssql:connection>ConnectionString</mssql:connection><mssql:storedProcedure>dbo.RedFox</mssql:storedProcedure> <...

c# – 实体框架核心:如果我们永远不会恢复迁移,删除Migration.Designer.cs是否安全?

我们有一个包含~200个表的数据库模式.为每次迁移创建的模型快照(Migration.Designer.cs)是~20K行.因此,进行大量迁移确实会降低我们对CI的构建速度(构建解决方案的约30次迁移需要6分钟进行迁移,或者4分钟不进行迁移). 那么,问题是:删除旧迁移的模型快照是否安全(我们知道我们永远不会恢复)?模型快照是否用于除Revert-Migration之外的任何其他内容?解决方法:Are model snapshots used for anything else except Revert-Migration?...