背景(这可能已经从我迄今为止提出的关于 DNOA 的众多问题中显而易见):我正在开发一个在我雇主的 Intranet 中运行的 Web 应用程序门户。但是,由于这是一个 Intranet,所有各种依赖方(和提供者)都有如下所示的 url http://servername/path
:尤其是缺少一个顶级域名。
DotNetOpenAuth ( UntrustedWebRequestHandler.IsUriAllowable(Uri uri)
) 中的代码执行以下检查:
if (!uri.Host.Contains(".")) {
return failsUnlessWhitelisted("it does not contain a period in the host name.");
}
显然,由于我所有的 RP 只是没有 TLD 的服务器名称,因此它们都未通过此检查。现在,我意识到我可以将它们全部添加到 web.config 白名单中(我已经尝试了一些并且它按预期工作),但是看到新服务器将被动态添加,我不认为这是一个理想的解决方案。
所以我的问题是:我应该尝试动态修改 web.config 吗?(我对此进行的初步研究表明这会很痛苦)或者,有没有办法以编程方式设置白名单?