.net – 使用DotNetOpenAuth的localhost上的OpenID提供程序
发布时间:2020-12-16 09:56:59 所属栏目:asp.Net 来源:网络整理
导读:我在本地运行DotNetOpenAuth示例提供程序,它似乎通过Web浏览器正确处理请求.我可以在调试器中单步执行处理程序以进行授权. 我有一个项目可以与谷歌和其他提供商进行身份验证,但与样本提供商失败.样本提供程序根本看不到请求,依赖方抛出异常,抱怨找不到OpenID
我在本地运行DotNetOpenAuth示例提供程序,它似乎通过Web浏览器正确处理请求.我可以在调试器中单步执行处理程序以进行授权.
我有一个项目可以与谷歌和其他提供商进行身份验证,但与样本提供商失败.样本提供程序根本看不到请求,依赖方抛出异常,抱怨找不到OpenID端点. 假设我在依赖方中执行以下操作: 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的列入白名单的主机列表中.他们的提供者仍然没有收到任何请求. 解决方法
看起来您已经意识到需要将本地主机列入白名单以使其正常工作.但是我最近意识到的另一件事是IIS阻止ASP.NET Web应用程序自己执行HTTP GET.它适用于Visual Studio Personal Web Server,但如果您的RP和OP都托管在localhost下的IIS上,那么可能是它阻止了它的IIS.您可以通过使用IIS托管的RP与控制台应用程序中的手写HttpWebRequest测试来确认或拒绝此操作.
如果它们都在IIS下,那就是问题所在,那么您应该使用Personal Web Server进行开发,或者将IIS中的两个站点分离到不同的应用程序池中,或者这样做会有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-core-mvc – “:exists”在路由模板上做了什么?
- ASP.NET FileUpload Control – 缓冲到磁盘时的安全问题
- asp.net-mvc – 如何在ASP.NET MVC Web API中将URL作为参数
- asp.net – 在维护期间重定向站点访问者
- asp.net-mvc – 在不更新的其他.config文件上的AppSettings
- asp.net-mvc-3 – Razor Func与MvcHtmlString混合使用
- asp.net-mvc – asp.net中的奇怪图像生成错误
- ASP.NET CodeFileBaseClass属性与从System.Web.UI.Page继承
- asp.net core 系列 5 MVC框架路由(上)
- asp.net-mvc – 使用浏览器栏将列表传递给MVC Web API方法
推荐文章
站长推荐
- asp.net-core – 无法在VS2015中定位netstandard
- 如何使用ASP.net Web API和Javascript下载二进制
- asp.net-mvc – 有没有办法向动作发送可选参数?
- asp.net – 带有内联样式表和媒体查询的Razor视图
- 如何实现ASP.NET 2.0,Coldfusion 5和Classic ASP
- asp.net MVC下使用rest的方法
- asp.net核心 – ASP.NET vNext – 编译代码动态不
- asp.net – 在jQuery中捕获异常
- asp.net-mvc – T4MVC @ Url.Action(MVC.Control
- entity-framework – 如果EF 5,如何定义自定义命
热点阅读