Tag: C#的

如何在C中使用/ dev / random或urandom?

我想在C中使用/dev/random或/dev/urandom 。我该怎么做? 我不知道如何处理他们在C,如果有人知道,请告诉我如何。 谢谢。

HttpWebRequest是非常慢!

我正在使用一个开源库连接到我的networking服务器。 我担心networking服务器变得非常慢,然后我尝试在Ruby中做一个简单的testing,并得到了这些结果 Ruby程序:10个HTTP GET的2.11秒 Ruby程序:对于100个HTTP GET,18.13秒 C#库:10个HTTP GET 20.81秒 C#库:100个HTTP GET的36847.46秒 我已经分析,发现问题是这个function: private HttpWebResponse GetRawResponse(HttpWebRequest request) { HttpWebResponse raw = null; try { raw = (HttpWebResponse)request.GetResponse(); //This line! } catch (WebException ex) { if (ex.Response is HttpWebResponse) { raw = ex.Response as HttpWebResponse; } } return raw; } 标记的线需要1秒钟才能完成,而发出1个请求的ruby程序需要0.3秒。 我也在127.0.0.1上进行所有这些testing,所以networking带宽不是问题。 什么可能导致这个巨大的减速? UPDATE 查看更改的基准testing结果。 我实际上testing了10个GET而不是100个,我更新了结果。

如何查找和replaceC#文件中的文本

我的代码到目前为止 StreamReader reading = File.OpenText("test.txt"); string str; while ((str = reading.ReadLine())!=null) { if (str.Contains("some text")) { StreamWriter write = new StreamWriter("test.txt"); } } 我知道如何find文本,但我不知道如何用自己的文件replace文件中的文本。

“静态常量”与“常量”的C ++语义

特别是在C ++中,语义上的区别是什么,例如: static const int x = 0 ; 和 const int x = 0 ; 对于static链接和存储类说明符(即函数内部和外部)。

有效的方法来确定一个整数中的位数

什么是一个非常有效的方法来确定在C + +中的整数有多less数字?

在C ++中是否有生产就绪的无锁队列或哈希实现?

我已经在C ++中使用了一个非locking的队列。 我发现了一些代码和一些试验 – 但我没有能够编译。 无锁哈希也是受欢迎的。 总结:到目前为止,我没有正面的答案。 没有“生产准备”库,而且现有的库都不符合STL容器的API。

单一方法的pipe理权限

是否有可能要求一个单一的方法的pipe理员权限? 像这样的东西: [RequireAdminRightsForThisMethod()] private void TheMethod(){ // Do something }

validation一个string只包含C#中的字母

我有一个inputstring,我想validation它包含: 只有字母或 只有字母和数字或 只有字母,数字或下划线 为了澄清,我在代码中有3个不同的情况,每个都要求不同的validation。 在C#中实现这个最简单的方法是什么?

如何validation域凭据?

我想validation对域控制器的一组凭据。 例如: Username: STACKOVERFLOW\joel Password: splotchy 方法1.用模拟查询Active Directory 很多人build议查询Active Directory的东西。 如果抛出exception,那么你知道凭据是无效的 – 正如在这个stackoverflow问题中所build议的。 然而,这种方法有一些严重的缺陷 : 您不仅要validation域帐户,还要进行隐式授权检查。 也就是说,您正在使用模拟令牌从AD读取属性。 如果否则有效的帐户没有权利从AD读取? 默认情况下,所有用户都具有读取访问权限,但可以将域策略设置为禁用受限帐户(和/或组)的访问权限。 针对AD的绑定具有严重开销,AD架构caching必须在客户端(DirectoryServices使用的ADSI提供程序中的ADSIcaching)中加载。 这既是networking,也是AD服务器,资源消耗大,而且对于像validation用户帐户这样的简单操作来说太昂贵了。 对于非例外情况,您依赖exception失败,并假设这意味着无效的用户名和密码。 其他问题(如networking故障,AD连接故障,内存分配错误等)则被误解为authentication失败。 方法2. LogonUser Win32 API 其他人build议使用LogonUser() API函数。 这听起来不错,但不幸的是,主叫用户有时需要一个通常只给予操作系统本身的权限: 调用LogonUser的进程需要SE_TCB_NAME特权。 如果调用进程没有此权限,LogonUser将失败,并且GetLastError返回ERROR_PRIVILEGE_NOT_HELD。 在某些情况下,调用LogonUser的进程也必须启用SE_CHANGE_NOTIFY_NAME权限; 否则,LogonUser失败,GetLastError返回ERROR_ACCESS_DENIED。 作为pipe理员组成员的本地系统帐户或帐户不需要此权限。 默认情况下,所有用户都启用了SE_CHANGE_NOTIFY_NAME,但是一些pipe理员可能会禁用所有用户。 正如微软在一篇知识库文章中指出的那样,将“ 行为作为操作系统的一部分 ”特权发出是不是你想做的事情: …正在调用LogonUser的进程必须具有SE_TCB_NAME特权(在用户pipe理器中,这是“ 作为操作系统的一部分 ”)。 SE_TCB_NAME特权非常强大, 不应该被授予任何任意用户,以便他们可以运行需要validation凭据的应用程序 。 此外,如果指定空密码,则对LogonUser()的调用将失败。 什么是validation一组域证书的正确方法? 我碰巧从托pipe代码调用,但这是一个一般的Windows问题。 可以假定客户安装了.NET Framework 2.0。

头文件中的variables声明 – 是否是静态的?

当重构一些#defines我在C ++头文件中遇到类似下面的声明: static const unsigned int VAL = 42; const unsigned int ANOTHER_VAL = 37; 问题是,静态会有什么不同呢? 请注意,由于经典的#ifndef HEADER #define HEADER #endif技巧(如果有的话),多个包含头文件是不可能的。 静态意味着只创build一个VAL副本,以防头文件被多个源文件包含在内?