gpt4 book ai didi

.net - 本地主机上使用 DotNetOpenAuth 的 OpenID 提供程序

转载 作者:行者123 更新时间:2023-12-01 01:36:15 25 4
gpt4 key购买 nike

我在本地运行了 DotNetOpenAuth 示例提供程序,它似乎可以通过 Web 浏览器正确处理请求。我可以在调试器中通过处理程序进行授权。

我有一个项目可以通过 Google 和其他提供商进行身份验证,但在示例提供商处失败。样本提供者根本看不到请求,依赖方抛出异常提示 No OpenID endpoint found.
假设我在依赖方中执行以下操作:

string providerURL = "http://localhost/openid/provider";

// Now try the openid relying party...
var openid = new OpenIdRelyingParty();
var response = openid.GetResponse();
if (response == null)
{
Identifier id;
if (Identifier.TryParse(providerURL, out id))
{
// The following line throws the exception without ever making
// a request to the server.
var req = openid.CreateRequest(providerURL);
// Would redirect here...
}
}

我注意到 UntrustedWebRequestHandler类阻止连接到主机名,例如 localhost但是根据测试用例或手动将其添加为列入白名单的主机似乎无济于事。

我已经检查了主机是否可以通过以下方式访问:
// Check to make sure the provider URL is reachable.
// These requests are handled by the provider.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(providerURL);
HttpWebResponse httpRes = (HttpWebResponse)request.GetResponse();

想法?我不知道为什么它根本不提出请求。

编辑: localhost像这样被列入白名单:
(openid.Channel.WebRequestHandler as UntrustedWebRequestHandler).WhitelistHosts.Add("localhost");

我也尝试通过将其添加到 web.config 来将其列入白名单像这样:
<dotNetOpenAuth>
<messaging>
<untrustedWebRequest>
<whitelistHosts>
<add name="localhost"/>
</whitelistHosts>
</untrustedWebRequest>
</messaging>
</dotNetOpenAuth>

使用任一方法, localhost出现在 UntrustedWebRequestHandler在调试器中检查时的白名单主机列表。他们的提供者仍然没有收到任何请求。

最佳答案

看起来您已经意识到需要加入白名单 localhost为 RP 以使其正常工作。但我最近意识到的另一件事是 IIS 阻止 ASP.NET Web 应用程序对自身执行 HTTP GET。它适用于 Visual Studio Personal Web Server,但如果您的 RP 和 OP 都托管在 IIS 下 localhost ,那么很可能是 IIS 阻止了它。您可以通过手写HttpWebRequest来确认或否认这一点。从 IIS 托管的 RP 与控制台应用程序进行测试。

如果它们都在 IIS 下并且这就是问题所在,那么您应该使用 Personal Web Server 进行开发,或者将 IIS 上的两个站点分离在不同的应用程序池中或类似的方法会有所帮助。

关于.net - 本地主机上使用 DotNetOpenAuth 的 OpenID 提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1845230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com