草庐IT

数字安全

全部标签

C#:简单的 Windows 服务提供安全异常

我正在以下链接中进行演练:http://msdn.microsoft.com/en-us/library/zt39148a%28VS.80%29.aspx我已经完全按照它逐行进行了。我成功安装了该服务,但是,当我尝试运行它时,出现以下错误消息:“MyNewService.Exe[5292]中发生未处理的异常(“System.Security.SecurityException”)。我已经看到它对很多人有效,但有些人遇到了这个异常,尽管我找不到答案。有人有想法吗?谢谢。 最佳答案 EventLog.SourceExists方法将导致此

c# - C# 中类型安全的即发即弃异步委托(delegate)调用

我最近发现自己需要一种类型安全的“即发即弃”机制来异步运行代码。理想情况下,我想做的是:varmyAction=(Action)(()=>Console.WriteLine("yadayada"));myAction.FireAndForget();//asyncinvocation不幸的是,调用BeginInvoke()的明显选择没有相应的EndInvoke()不起作用-它会导致缓慢的资源泄漏(因为异步状态由运行时保持并且从未释放......它期待最终调用EndInvoke()。我也无法在.NET线程上运行代码池,因为它可能需要很长时间才能完成(建议只在线程池上运行相对较短生命周期的

c# - 在序列化中将长数字转换为字符串

我有一个使用longasID的定制类。但是,当我使用ajax调用我的操作时,我的ID被截断并且它丢失了最后2个数字,因为javascript在处理大量数字时会失去精度。我的解决方案是为我的javascript提供一个字符串,但ID必须在服务器端保持尽可能长的时间。有没有办法将属性序列化为字符串?我正在寻找某种属性。ControllerpublicclassCustomersController:ApiController{publicIEnumerableGet(){yieldreturnnewCustomerEntity(){ID=1306270928525862486,Name="

c# - 检查数字数组是否连续的功能方法

如果每个成功的元素都具有前一个元素的值+1,那么假设一个数组是连续的。假设我有一个数字数组,例如{5,6,7,8}(顺序)或{1,2,5}(非顺序)。是否有一个很好的功能方法来检查数组是否是连续的?我可以使用以下代码来完成:boolIsSequential(int[]array){for(inti=1;i我正在尝试确定一手扑克牌是否顺子。 最佳答案 试试这个:boolIsSequential(int[]array){returnarray.Zip(array.Skip(1),(a,b)=>(a+1)==b).All(x=>x);}

c# - 如何安全地停止在 Windows 服务中运行的 C# .NET 线程?

我正在维护一些看起来像这样的代码。这是一项Windows服务,每30分钟执行一些工作。ActualWorkDoneHere方法需要大约30秒才能运行,但如果它在运行时停止,可能会使事情处于糟糕的状态。防止这种情况发生的最佳方法是什么?我应该用onstop方法中设置为false的bool值替换While(true)(删除线程Abort调用)吗?有什么方法可以判断线程是否正在休眠?namespaceWorkService{publicpartialclassWorkService:ServiceBase{privateThread_workerThread=null;publicWorkS

c# - 用于检查给定密码是否至少包含一个数字和一个字母的正则表达式?

谁能帮我写一个正则表达式来检查密码中是否至少有一个字母和一个数字?我要求用户密码必须是字母数字,我希望能够使用正则表达式进行检查。 最佳答案 Positivelookahead正是您要寻找的。正则表达式如下所示:(?=.*[A-Za-z])(?=.*[0-9])[A-Za-z0-9]+这里,(?=.*[A-Za-z])是肯定的先行,断言您的字符串是至少一个字符,并且(?=.*[0-9])断言它有至少一位数。重要的是要注意正先行不返回匹配项,而是断言匹配项是否存在。因此,您应该将前面的正则表达式理解为“断言它至少有一个字符;断言它至少

c# - 这个非锁定的 TryGetValue() 字典访问线程安全吗?

privateobjectlockObj=newobject();privateDictionarydict=newDictionary();publicstringGetOrAddFromDict(intkey){stringvalue;//non-lockedaccess:if(dict.TryGetValue(key,outvalue))returnvalue;lock(this.lockObj){if(dict.TryGetValue(key,outvalue))returnvalue;stringnewValue="valueof"+key;//placelongoperat

c# - 将数字转换为 .NET 中的十六进制值

我需要将整数转换为十六进制值。它看起来像这样:0x0201cb77192c851c当我做的时候stringhex=int.ToString("x")在C#中,它返回201cb77192c851c如何获得所需的结果? 最佳答案 一种方法是在“x”之后附加您需要的位数。这将根据需要用前导零填充输出。"0x"+myLong.ToString("x16");或string.Format("0x{0:x16}",myLong);来自TheHexadecimal("X")FormatSpecifier:Theprecisionspecifier

c# - 仅允许在 WPF 文本框中输入数字

我想验证用户输入以确保它们是整数。我该怎么做?我想到了使用IDataErrorInfo,这似乎是在WPF中进行验证的“正确”方法。所以我尝试在我的ViewModel中实现它。但问题是我的文本框绑定(bind)到一个整数字段,并且不需要验证int是否为int。我注意到WPF会自动在文本框周围添加一个红色边框以通知用户错误。基础属性不会更改为无效值。但我想通知用户这一点。我该怎么做? 最佳答案 另一种方法是简单地不允许非整数值。以下实现有点糟糕,我想稍后将其抽象化以使其更易于重用,但这是我所做的:在我看来,在后面的代码中(我知道如果你是

c# - C#中的格式数字

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:.NETString.Format()toaddcommasinthousandsplaceforanumber如何在C#中将数字1234567格式化为1,234,567?