Proveedor de OpenID en localhost con DotNetOpenAuth
Tengo el proveedor de muestras DotNetOpenAuth ejecutándose localmente y parece que maneja las solicitudes correctamente a través del navegador web. Puedo pasar por el controlador para la autorización en el depurador.
Tengo un proyecto que se puede autenticar con Google y otros proveedores pero falla con el proveedor de muestra. El proveedor de la muestra nunca ve una solicitud y la parte que confía lanza una excepción que se quejaNo OpenID endpoint found.
Digamos que hago lo siguiente en el partido de confianza:
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...
}
}
Me di cuenta de que elUntrustedWebRequestHandler
clase de evitar conexiones a nombres de host comolocalhost
pero agregarlo como un host en la lista blanca, según los casos de prueba o manualmente, no parece ayudar.
He comprobado que el host es accesible con lo siguiente:
// 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();
¿Pensamientos? Estoy en el final de lo ingenioso en cuanto a por qué nunca hace una solicitud en absoluto.
EDITAR:localhost
fue incluido en la lista blanca como tal:
(openid.Channel.WebRequestHandler as UntrustedWebRequestHandler).WhitelistHosts.Add("localhost");
También he intentado en la lista blanca agregándolo aweb.config
al igual que:
<dotNetOpenAuth>
<messaging>
<untrustedWebRequest>
<whitelistHosts>
<add name="localhost"/>
</whitelistHosts>
</untrustedWebRequest>
</messaging>
</dotNetOpenAuth>
Usando cualquiera de los dos enfoques,localhost
aparece en elUntrustedWebRequestHandler
Lista de hosts de la lista blanca cuando se examina en el depurador. Su proveedor aún no recibe ninguna solicitud.