草庐IT

安全操作

全部标签

c# - .NET 中的解析器操作方法

我想了解如何在.NET中构建解析器来处理源文件。例如,也许我可以从学习如何解析SQL、HTML或CSS开始,然后根据结果采取行动,以便能够将它们格式化以提高可读性或类似的东西。我在哪里可以学习如何执行此操作?有没有具体的书可以引用?我需要了解词法分析器/解析器吗?特别适用于.NET平台,因为我对C#很熟悉。 最佳答案 我个人找到了这篇文章,GrammarsandParsingwithC#2.0,关于编写词法分析器/解析器的精彩介绍,以及与C#相关的示例。我写了abriefblogpost不久前关于它,做它赞美。好处是它非常适合完全初

c# - 在程序代码中安全地存储密码?

我的应用程序使用RijndaelManaged类来加密数据。作为此加密的一部分,我使用了一个加载了密码的SecureString对象,该对象在运行时被转换为字节数组并加载到RajindaelManaged对象的key中。我的问题是这个SecureString的存储。用户输入的密码可以在运行时输入,并且可以“安全地”加载到SecureString对象中,但是如果没有给出用户输入的密码,那么我需要默认一些东西。所以最终问题归结为:如果每次我的应用程序运行时我都必须将一些已知的字符串或字节数组加载到SecureString对象中,我该怎么做?“加密”数据最终会被另一个应用程序解密,因此即使没

c# - 对所有 Controller 操作执行操作过滤器 (C#/ASP.NET MVC)

我制作了一个新的Action过滤器(属性,类似于[Authorize]),它根据session值授权访问ControllerAction。但是,我基本上是用该属性装饰我的所有Controller操作(除了极少数)。因此,我认为在我将[ExemptFromAuthorize]属性附加到Controller操作的情况下,让操作过滤器始终执行除外会更好吗?(也许通过继承到我自己的Controller类?)我该怎么做? 最佳答案 运行jeef3的答案,我想到了这个。它可以使用更多的错误检查和稳健性,例如多个定界操作,但总体思路可行。在您的特

c# - C# 枚举类型安全吗?

C#枚举类型安全吗?如果不是,会有什么影响? 最佳答案 给出一个稍微不同的答案......虽然从转换的角度来看这些值是类型安全的,但一旦它们被转换它们仍然没有被检查-即enumFoo{A=1,B=2,C=3}staticvoidMain(){Foofoo=(Foo)500;//worksfineConsole.WriteLine(foo);//alsofine-shows500}因此,您应该注意检查值-例如default在switch抛出异常。您还可以通过以下方式检查(对于非[Flags]值):boolisValid=Enum.Is

c# - 将安全的 SQL 语句创建为字符串

我正在使用C#和.NET3.5。我需要生成并存储一些稍后将在远程服务器上执行的T-SQL插入语句。例如,我有一个员工数组:newEmployee[]{newEmployee{ID=5,Name="FrankGrimes"},newEmployee{ID=6,Name="TimO'Reilly"}}我需要得到一个字符串数组,如下所示:"INSERTINTOEmployees(id,name)VALUES(5,'FrankGrimes')","INSERTINTOEmployees(id,name)VALUES(6,'TimO''Reilly')"我正在查看一些使用String.Forma

c# - 如何轻松使这个计数器属性线程安全?

我在只有计数器的类中有属性定义,这必须是线程安全的,这不是因为get和set不在同一个锁中,如何做到这一点?privateint_DoneCounter;publicintDoneCounter{get{return_DoneCounter;}set{lock(sync){_DoneCounter=value;}}} 最佳答案 如果您希望以保证DoneCounter=DoneCounter+1不受竞争条件影响的方式实现属性,则不能在属性的实现中完成。该操作不是原子操作,它实际上是三个不同的步骤:检索DoneCounter的值。加1将

c# - DefiningQuery 且 <ModificationFunctionMapping> 元素中不存在 <DeleteFunction> 元素以支持当前操作

无法更新EntitySet'InstanceObjectName',因为它有一个DefiningQuery并且元素中不存在支持当前操作的元素 最佳答案 确保你的表有一个主键! 关于c#-DefiningQuery且元素中不存在元素以支持当前操作,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8676421/

c# - .NET 字符串操作区分大小写吗?

IndexOf("blah")之类的.NET字符串函数是否区分大小写?根据我的内存,它们不是,但出于某种原因,我在我的应用程序中发现错误,其中查询字符串中的文本采用驼峰式大小写(如UserID),我正在测试IndexOf("用户ID"). 最佳答案 是的,字符串函数默认区分大小写。它们通常有一个重载,可让您指示所需的字符串比较类型。IndexOf也是如此。要以不区分大小写的方式获取字符串的索引,您可以执行以下操作:stringblaBlah="blaBlah";intidx=blaBlah.IndexOf("blah",String

C# RabbitMQ 客户端线程安全

ConnectionFactoryfactory=newConnectionFactory{HostName="localhost"};using(IConnectionconnection=factory.CreateConnection())using(IModelchannel=connection.CreateModel()){channel.QueueDeclare("hello",false,false,false,null);for(inti=0;i我有上面的代码,我对线程安全性很好奇。我不确定,但我想ConnectionFactory是线程安全的。但是IConnecti

c# - List<T>.Contains() 是线程安全调用 - C#

我的理解是,如果您在C#中使用泛型列表(List),那么它可以支持多个并发读取器,但只能支持一个写入器。当您将编写器引入混合时,您还必须提供同步结构以使操作线程安全。List.Contains是否被视为读取操作?换句话说,如果我调用这个方法,我是否需要担心写入者可能同时写入这个列表? 最佳答案 是的,你应该。基本上,如果列表可能同时用于写入,我会同步任何操作。一般来说,我发现集合分为两类-一种是创建、初始化然后再也不会更改(线程安全),另一种是随着时间的推移而发生变化(非线程安全,所有访问都锁定)。