草庐IT

消息安全

全部标签

c# - 使用 C# 从 TCP 流中解析串联的、非定界的 XML 消息

我正在尝试解析通过TCP发送到我的C#应用程序的XML消息。不幸的是,协议(protocol)无法更改,XML消息没有定界,也没有使用长度前缀。此外,字符编码不固定,但每条消息都以XML声明开头.问题是,我如何使用C#一次读取一条XML消息。到目前为止,我尝试将数据从TCP流读取到字节数组中并通过MemoryStream使用它.问题是,缓冲区可能包含多个XML消息,或者第一条消息可能不完整。在这些情况下,我在尝试使用XmlReader.Read解析它时遇到异常或XmlDocument.Load,但不幸的是XmlException并不能真正让我区分问题(解析本地化错误字符串除外)。我尝试

c# - 在类中表示类型安全属性包的最佳方式是什么?

我有一个第3方应用程序,它提供了一个具有许多“属性”的对象,这些属性只是(字符串)键和值对。值类型可以是字符串、DateTime、Int32或Int64。我需要创建自己的类来方便地表示该对象。我正在创建一个向客户端提供此对象的WCF服务,因此我需要它非常简单和干净。属性的键将作为Enum呈现给客户端(以隐藏第3方应用程序的特定键字符串的信息)。但是,我不确定如何表示这些值。以下是一些选项:选项1:每个属性值有不同的集合,看起来很丑,但对于客户来说非常容易使用publicclassMyObject{publicDictionaryTextAttributes{get;set;}publi

c# - 如何在 C# 应用程序中安全地存储数据库登录名和密码?

我有一个C#应用程序需要连接到SQL数据库以不时发送一些数据。如何安全地存储用于此作业的用户名和密码? 最佳答案 ThereisaniceMSDNarticle关于如何保护.Net中的连接字符串。您可能想使用protectedconfiguration. 关于c#-如何在C#应用程序中安全地存储数据库登录名和密码?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/11685206/

c# - 安全地停止长时间运行的任务

如何停止长时间运行的任务(.net4)?我已经实现了TPL并尝试使用CancellationTokenSource但它似乎不适用于我的场景。我见过的所有示例都假设您在while循环中工作,以便您可以检查任务是否已被取消,而我只有一个需要很长时间的操作。我不能等待工作完成,因为我需要假设它可能永远不会完成。这是我试过的代码:bool?result=null;varcs=newCancellationTokenSource();varct=cs.Token;vardoWorkTask=newTask(()=>{Console.WriteLine("startdoworktask");res

c# - 如何在 C#.net 中使用 google + api 向 google hangout 发送消息?

按照此链接中给出的步骤https://developers.google.com/+/quickstart/csharp,googleplus借助该链接中提供的gplus-quickstart-csharp代码自动登录。现在我想使用上述API(代码)向googlehangout发送消息我检查了这个链接https://developers.google.com/+/hangouts/api/gapi.hangout.data#gapi.hangout.data.onMessageReceived在可用的sendMessage(message)中,我如何在我的C#代码中实现该方法。有什么想

c# - Visual Studio - 抑制某些 "Exception thrown"消息

您能否在某些方法(某些代码区域)的输出中隐藏“抛出异常”消息?我使用HttpWebRequest进行服务器通信。我定期检查服务器是否可用(每秒几次)。当服务器不可访问时,HttpWebRequest会抛出异常。我捕获它并将启用的GUI元素设置为false。问题是当服务器无法访问时,输出窗口会被“抛出的异常”消息弄得乱七八糟。我知道您可以右键单击输出窗口并取消选中“异常消息”。但我不仅是一个从事该项目的人,而且可能有人希望看到一些其他异常消息(在他们的项目部分)。我需要的例子://Keepshowing"Exceptionthrown"messageinthismethod.static

c# - 延迟的 NUnit 断言消息评估

我的测试代码中有这个断言Assert.That(()=>eventData.Count==0,Is.True.After(notificationPollingDelay),"Receivedunexpectedeventwithlasteventdata"+eventData.Last().Description());在一段时间后断言某些条件,失败时会产生一条消息。它无法运行,因为消息字符串是在断言开始时构造的,而不是在断言结束时构造的。因此eventData集合仍然是空的(因为它最初是空的)并且尝试获取集合中最后一项的Description失败。在NUnit中是否有解决方法或合适

C# - 让 WCF 接受任何 Soap 消息前缀

情况是这样的,有一个现有的客户端,我需要构建一个客户端将要使用的服务器。我不拥有客户端,也无法更改它。客户端SOAP消息可以如下如何让我的服务接受两个带圆圈的前缀。目前它只接受“c2b”前缀,不处理任何带有“ns1”前缀的请求。 最佳答案 您正在将DTO(类对象)传递给服务,但您的wcf服务无法识别确切的类。因此,要使WCF接受任何前缀,只需添加具有适当对象位置的前缀。您只需要再添加一个xmlns属性为.例如。 关于C#-让WCF接受任何Soap消息前缀,我们在StackOverflow

C# RabbitMQ 等待指定超时的一条消息?

RabbitMQWaitforamessagewithatimeout中的解决方案和WaitforasingleRabbitMQmessagewithatimeout似乎不起作用,因为官方C#库中没有下一个传递方法,并且QueueingBasicConsumer被删除,所以它只是到处抛出NotSupportedException。如何在指定的超时时间内等待来自队列的单个消息?附言可以通过Basic.Get()来完成,是的,但是好吧,在指定的时间间隔内拉取消息(过多的流量,过多的CPU)是一个糟糕的解决方案。更新EventingBasicConsumer通过实现不支持立即取消。即使您在某

c# - 检查 null 线程安全吗?

我有一些代码在新线程上抛出异常,我需要在主线程上确认和处理这些异常。为实现这一点,我通过使用保存抛出异常的字段在线程之间共享状态。我的问题是我是否需要在检查null时使用锁,就像我在下面的代码示例中所做的那样?publicclassMyClass{readonlyobject_exceptionLock=newobject();Exception_exception;publicMyClass(){Task.Run(()=>{while(CheckIsExceptionNull()){//Thisconditionalwillreturntrueif'somethinghasgonew