草庐IT

安全加密虚拟化

全部标签

c# - 从物理路径转换为虚拟路径

我有这个函数可以将文件数据作为字节数组和文件路径获取。我得到的错误是当它试图在代码bewlo中设置fileInfo时。它说“给定物理路径,期望虚拟路径”publicoverridevoidWriteBinaryStorage(byte[]fileData,stringfilePath){try{//Createdirectoryifnotexists.System.IO.FileInfofileInfo=newSystem.IO.FileInfo(System.Web.HttpContext.Current.Server.MapPath(filePath));//whenitgetst

c# - List<T>.AddRange() 线程安全吗?

我可以在不锁定的情况下从多个线程安全地调用List.AddRange(r)吗?如果不是,我会遇到什么样的麻烦? 最佳答案 否,itsdocumentation没有说它是线程安全的,因此它不是。Publicstatic(SharedinVisualBasic)membersofthistypearethreadsafe.Anyinstancemembersarenotguaranteedtobethreadsafe.至于哪里会出错,想想AddRange(newItems)做了什么:检查内部数组是否有足够的空间如果不是:分配一个新数组将

c# - 获取 url 的主要部分,包括虚拟目录

我正在使用.net4.0c#。我希望能够从当前的http请求中获取url,包括任何虚拟目录。因此,例如(请求和寻求值(value)):http://www.website.com/shop/test.aspx->http://www.website.com/shop/http://www.website.com/test.aspx->http://www.website.com/http://website.com/test.aspx->http://website.com/如何实现这一目标? 最佳答案 这是我用的HttpConte

c# - 单例成员的线程安全使用

我有一个多个类使用的C#单例类。通过Instance访问Toggle()方法线程安全吗?如果是,根据什么假设、规则等。如果不是,为什么和我该如何解决?publicclassMyClass{privatestaticreadonlyMyClassinstance=newMyClass();publicstaticMyClassInstance{get{returninstance;}}privateintvalue=0;publicintToggle(){if(value==0){value=1;}elseif(value==1){value=0;}returnvalue;}}

c# - 什么是非线程安全?

有很多文章和讨论解释了为什么构建线程安全类是好的。据说如果多个线程访问例如同时一个领域,只能有一些不好的后果。那么,保持非线程安全代码的意义何在?我主要关注.NET,但我相信主要原因与语言无关。例如.NET静态字段不是线程安全的。如果它们默认是线程安全的,结果会怎样?(无需执行“手动”锁定)。使用(实际上默认)非线程安全有什么好处?我想到的一件事是性能(尽管更多是猜测)。很直观的是,当函数或字段不需要线程安全时,它不应该是。然而,问题是:为什么?线程安全只是您始终需要实现的额外代码量吗?在什么情况下我可以100%确定例如一个字段不会同时被两个线程使用? 最佳

c# - 在 C# 中,我如何安全地退出带有 try catch block 的锁?

这是一个在锁内发生异常的示例,带有try-catchblock。intzero=0;intj=10;lock(sharedResource.SyncRoot){try{j=j/zero;}catch(DivideByZeroExceptione){//exceptioncaughtbutlocknotreleased}}我如何安全地释放锁扣? 最佳答案 不会自动释放吗?来自MSDN的锁手段System.Threading.Monitor.Enter(x);try{...}finally{System.Threading.Monito

c# - 线程安全类是否应该在其构造函数的末尾设置内存屏障?

当实现一个旨在线程安全的类时,我是否应该在其构造函数的末尾包含一个内存屏障,以确保任何内部结构在它们可以被访问之前已经完成初始化?还是消费者有责任在使实例对其他线程可用之前插入内存屏障?简化问题:由于在线程安全类的初始化和访问之间缺少内存屏障,下面的代码中是否存在可能导致错误行为的竞争危险?或者线程安全类本身应该防止这种情况发生吗?ConcurrentQueuequeue=null;Parallel.Invoke(()=>queue=newConcurrentQueue(),()=>queue?.Enqueue(5));请注意,程序不入队是可以接受的,如果第二个委托(delegate)

c# - 我们可以使用枚举作为类型安全的实体 ID 吗?

我们在EF6.1代码优先设置中使用一个相当大的模型,我们使用int作为实体ID。不幸的是,这并不像我们希望的那样类型安全,因为很容易混淆id,例如比较不同类型实体的id(myblog.Id==somePost.Id)或类似的。或者更糟:myBlog.Id++。因此,我想出了使用类型化ID的想法,因此您不能混淆ID。所以我们的博客实体需要一个BlogId类型。现在,显而易见的选择是使用一个包含在结构中的int,但您不能将结构用作键。而且你不能扩展int...-等等,你可以!使用枚举!所以我想到了这个:publicenumBlogId:int{}publicclassBlog{public

c# - 加密 SQL 连接字符串 c#

我创建了一个连接到sql2005服务器的c#应用程序(不是asp网页)。在我的源代码中,此sql-server的密码和用户ID在ConnectionString中以纯文本编码。SqlConnectioncon=newSqlConnection();con.ConnectionString="DataSource=server1;"+"InitialCatalog=mydatabase;"+"IntegratedSecurity=no;"+"UserID=admin;Password=mypassword;";con.Open();有没有一种简单的方法来加密密码或整个连接字符串,其他拆解

c# - 由于缺少 SSL 加密,连接到 SQL Azure 数据库失败

我正在Mac上学习ASP.NET5(vNext)。最后一天,我一直在尝试连接到我的SQLAzure数据库。在那次尝试中,我一直在使用以下代码:varserverName="[protected]";vardbName="[protected]";varuserId="[protected]";varpassword="[protected]";varsql="SELECT*FROMCustomer";using(vardatabase=newSqlConnection("Server=tcp."+serverName+".database.windows.net,1433;Databa