草庐IT

nt_iterator

全部标签

windows - 如何注册为 NT 内核事件的实时 ETW 使用者?

我已经能够成功地使用logman来转储一些内核跟踪。但是,我希望能够以编程方式在我的应用程序中启用内核事件的实时消耗(主要是线程/进程创建/删除和文件I/O)。完成此任务的最佳方法是什么? 最佳答案 您在StartTrace中启用内核事件.在EVENT_TRACE_PROPERTIES您传递给StartTrace,EnableFlags包含不同内核事件提供程序的各种标志。将EVENT_TRACE_PROPERTIES中的LogFileMode设置为EVENT_TRACE_REAL_TIME_MODE成为实时消费者。然后您可以使用Pr

c# - 针对 Active Directory 验证 NT 和 LM 哈希

我正在编写使用NTLM协议(protocol)对用户进行身份验证的Web应用程序。我已成功从客户端获取密码的NT和LM哈希值。我如何根据ActiveDirectory验证它们以确保密码正确。我正在使用C#,但我认为我也可以调用native库。编辑:我看不出反对票的理由。NTLM(v2)协议(protocol)已过时,因此很难找到有关如何处理它的相关信息。尤其是在C#这样的现代语言中。但我发现了两种可能的方法:使用Windows的nativeSSPI调用(Microsoft不推荐),但可以通过适当的包装实现。幸运的是,有一个例子:http://pinvoke.net/default.as

windows - 没有网络访问权限的虚拟服务帐户,如 NT AUTHORITY\LocalService

背景:我正在编写一项服务,并希望尽可能少地授予它必要的权限。虚拟帐户(有时称为“虚拟服务帐户”)是sparselydocumentedWindows7/2008R2的新功能是自动管理的服务帐户,这些服务需要最少的权限,但可以在域环境中使用计算机身份访问网络。我的服务不需要网络访问权限,所以我使用的是LocalService,但我不喜欢这样的事实:如果我授予对文件/等的访问权限,我就会授予对以该帐户运行的所有服务的访问权限。是否有我可以使用的最低权限帐户? 最佳答案 您无需更改运行服务的帐户;LocalService没问题。相反,将服

c# - Iterating Over ConcurrentDictionary 只读时,ConcurrentDictionary 是否被锁定?

我在我的网络应用程序中创建了一个ConcurrrentDictionary作为应用程序对象。它在session之间共享。(基本上用作存储库。)有时,任何可用的session都会将新项目添加到字典中。仅允许管理员查看现在,我想允许管理员列出字典中的所有值,但管理员不会添加或删除项目,相反我只会提供一种方式让管理员查看通过遍历项目来读取集合中的项目。(伪)代码看起来像这样:foreach(vareinEmployeeCache.Instance.AllEmployees){Console.WriteLine(e.Key);}我的问题是:如果我遍历项目,ConcurrentDictionar

c# - 异步任务<IEnumerable<T>> 抛出 "is not an iterator interface type"错误

仅当我使用async时,下面的代码才会抛出isnotaniteratorinterfacetypeawait并包装IEnumerable与任务。如果我删除asyncawait,它将与IEnumerable>一起使用.privateasyncTask>>GetTableDataAsync(CloudTablecloudTable,TableQuerytableQuery)whereT:ITableEntity,new(){TableContinuationTokencontineousToken=null;do{varcurrentSegment=awaitGetAzureTableDa

c# - 调用使用 yield 返回的方法时出现错误 'Iterator cannot contain return statement '

我希望有更好的方法来编写此方法和重载,同时减少代码重复。我想返回列表中项目之间的一系列增量。这个方法:-publicstaticIEnumerableCalculateDeltas(thisIEnumerablesequence){decimalprev=default(decimal);foreach(variteminsequence){varcurrent=item;decimaldiff=current-prev;prev=item;yieldreturndiff;}}工作得很好。然后我想到了一个允许绝对增量的重载,但如果不需要绝对值,则会调用原始方法:-publicstati

c# - 登录失败。用户 'NT AUTHORITY\SYSTEM' 登录失败

我创建了一个Windows服务,我的服务依赖于SQLServer服务。首先,SQL启动,然后在启动PC或重新启动PC时启动我的服务。这工作正常,但问题是Windows服务无法读取数据库文件,抛出异常“无法打开用户默认数据库。登录失败。用户‘NTAUTHORITY\SYSTEM’登录失败”,当我尝试读取数据库。如果我启动计算机并登录,则它无法读取数据库,但如果我启动计算机并等待几秒钟,然后登录到窗口服务,它会读取数据库。 最佳答案 我打赌你的连接字符串中有这个:IntegratedSecurity=SSPI或类似的东西。现在运行该服务

C# 循环 : iterating through an array

如果我有如下循环:foreach(stringpassinnewstring[]{"pass1","pass2","pass3"}){x=pass;//etc}匿名字符串数组是最初创建一次,还是每次传递都重新创建一次?我相信前者,但同事们确信这是一个等待发生的错误,因为他们说foreach循环的每次迭代都会导致创建一个新的字符串数组。VS反汇编代码表明我是对的,但我想确定。我们关注这个的原因是试图理解一个神秘的错误,该错误报告在迭代时集合已被更改。 最佳答案 根据EricLippertblog和specification,forea

javascript - AngularJs - 错误 : 10 $digest() iterations reached. 中止

我正在尝试使用Angular创建一个MetroTile类型的网格,为了实现这一点,我希望每个瓷砖都具有不同的颜色。所以我的行动计划是创建一个函数,它会在循环内随机选择一种颜色(使用ng-repeat)。这是我目前所拥有的......{{stockRecord.ProductGroupName}}如你所见,我正在使用名为RandomColourClass的函数设置类名,这是JS位$scope.TileColours=[{colour:'thumbnailtiletile-blue'},{colour:'thumbnailtiletile-green'},{colour:'thumbnai

javascript - 如何知道何时在动态 "iterable"参数中解决所有 Promises?

我的问题是我不知道如何知道动态promise数组何时解决了所有promise。举个例子:varpromiseArray=[];promiseArray.push(newPromise(){/*blablabla*/});promiseArray.push(newPromise(){/*blablabla*/});Promise.all(promiseArray).then(function(){//Thiswillbeexecutenwhenthose2promisesaresolved.});promiseArray.push(newPromise(){/*blablabla*/})