Tag: dns

使用.Net持久存储加密数据

我需要在应用程序运行之间存储加密数据(很少的小字符串)。 我不希望用户每次启动应用程序时都提供密码。 也就是说,它可以安全地存储加密密钥。 我正在研究RSACryptoServiceProvider并使用PersistentKeyInCsp,但我不确定它是如何工作的。 密钥容器在应用程序运行或机器重启之间是否持久? 如果是,是用户特定的还是特定于机器的。 即如果我将加密数据存储在用户的漫游配置文件中,如果用户登录其他计算机,我可以解密数据吗? 如果以上不起作用,我有什么选择(我需要处理漫游配置文件)。

反向IP域检查?

有一个网站,您可以使用域查询,它将返回该IP上托管的所有网站的列表。 我记得在C#中有一个类似于ReturnAddresses或类似东西的方法。 有谁知道这是怎么做到的? 查询主机名或IP并返回主机名列表,也就是托管在同一服务器上的其他网站? 该网站是: http : //www.yougetsignal.com/tools/web-sites-on-web-server/

Dns.BeginGetHost …方法阻塞

所以我想做很多 DNS查询。 我从Begin/EndGetHostEntry异步对创建(数千个)任务: var lookupTask = Task.Factory.FromAsync ( Dns.BeginGetHostEntry, (Func) Dns.EndGetHostEntry, “google.com”, null ) 然后Task.WaitAll完成所有事情。 我看到ThreadPool线程的数量急剧增加以响应我的请求。 如果我将ThreadPool minThreads为500,则工作量的消耗会大大加快。 所有这些都指向Dns异步实现中的阻塞。 如果我用管理的Dns客户端替换Dns ,我可以使用相同的工作负载,在ThreadPool只有1或2个线程,而cpu几乎是空闲的。 问题是, Dns实现绝对是许多网络API( HttpWebRequest , WebClient , HttpClient )的核心,它们似乎都受到这个问题的影响。 如果我使用第三方库解析DNS,并使用IP地址作为uri中的主机发出HTTP请求,然后更改Host标头以修复请求,与涉及System.Net.Dns任何内容相比,我都会获得极高的性能。 这里发生了什么? 我错过了什么或者System.Net.Dns实现真的那么糟糕吗?

如何清除System.Net客户端DNS缓存?

我在更改我的HOSTS文件时使用的是.NET WebRequest。 我观察到System.Net不尊重这些变化 – 我怎么能这样做呢? 我在一个主机名后面有许多负载均衡的服务器,比方说’example.com’。 我想单独定位其中几个,所以我的程序会在向example.com发送请求之前在我的HOSTS文件中硬编码机器特定的IP地址: 163.56.0.34 example.com 对于第一个服务器和第一个请求,这很好。 然后我的程序再次更改HOSTS文件: 163.56.0.48 example.com 我创建了一个新的HttpWebRequest。 当我发送这个时,我可以在NETMON中观察到它转到第一个IP地址(163.56.0.34)而不是预期的第二个IP地址。 使用断点和调试跟踪,我已经validation每次都将正确的值写入HOSTS文件。 当我尝试从浏览器或其他程序访问example.com时,它确实尊重HOSTS文件并转到第二个IP地址。 使用NETMON我已经validation了请求是直接进入显示的IP地址; 没有HTTP代理。 由于其他一切都是为了兑现已更改的HOSTS文件,因此我强烈怀疑System.Net基础结构已缓存example.com的DNS主机-IP关联。 但是,我找不到对此缓存的引用,并且知道无法刷新或关闭它。 我欢迎处理缓存的说明,可能导致这些症状的其他建议,或其他可能有用的诊断步骤。

C#Active Directory:获取用户的域名?

我知道之前曾经问过这类问题,但其他方法现在都让我失望了。 正如我们的Windows服务轮询AD,给定一个LDAP(即LDAP://10.32.16.80)和该AD服务器中要搜索的用户组列表。 它检索这些给定组中的所有用户,以递归方式搜索这些组以获取更多组。 然后将每个用户添加到另一个应用程序认证用户列表中。 这部分应用程序运行成功。 但是,我们需要每个用户的友好域名(即他们登录DOMAIN /用户名的一部分) 因此,如果有一个用户属于TEST域,则名为Steve:TEST / steve是他的登录名。 我能够在AD中找到steve,但是我还需要“TEST”与他的AD信息一起存储。 再一次,我可以通过使用目录搜索器和我给出的LDAP IP找到’史蒂夫’,但是考虑到LDAP IP,我怎样才能找到友好的域名? 当我尝试以下代码时,我在尝试访问’defaultNamingContext’时遇到错误: System.Runtime.InteropServices.COMException(0x8007202A):身份validation机制未知。 这是代码: private string SetCurrentDomain(string server) { string result = string.Empty; try { logger.Debug(“‘SetCurrentDomain’; Instantiating rootDSE LDAP”); DirectoryEntry ldapRoot = new DirectoryEntry(server + “/rootDSE”, username, password); logger.Debug(“‘SetCurrentDomain’; Successfully instantiated rootDSE LDAP”); logger.Debug(“Attempting to retrieve ‘defaultNamingContext’…”); string domain = (string)ldapRoot.Properties[“defaultNamingContext”][0]; //THIS […]

来自C#中URL的顶级域名

我正在使用C#和ASP.NET。 我们在IIS 6.0服务器上收到很多“奇怪”的请求,我想按域记录和编目。 例如。 我们收到一些奇怪的请求,比如: http://www.poker.winner4ever.example.com/ http://www.hotgirls.example.com/ http://santaclaus.example.com/ http://m.example.com/ http://wap.example.com/ http://iphone.example.com/ 后三者有点显而易见,但我想把它们全部整理成一个“example.com”IS托管在我们的服务器上。 其余的不是,抱歉:-) 所以我正在寻找一些如何从上面检索example.com的好主意。 其次,我想将m。,wap。,iphone等匹配到一个组中,但这可能只是在移动快捷键列表中快速查找。我可以手动编码此列表作为开始。 但是regexp这里的答案还是纯粹的字符串操作最简单的方法? 我在考虑用“。”将URL字符串“拆分”。 以及项目[0]和项目[1]的查找… 有任何想法吗?