6

我正在开发一个使用 OpenID 进行身份验证的网站,但它运行良好……我经常在没有互联网连接的情况下旅行时使用它。如果会话到期并且我需要再次登录,则在我再次连接之前我无法登录。

我想做的是在本地 IIS 上设置一个非常愚蠢的 OpenID 提供程序,我可以在断开连接时使用它来登录。真正愚蠢的意思就是——它只需要是一个硬编码的 URL,它可以作为 openID 提供者正确响应并允许登录。

我快速浏览了 DotNetOpenAuth 中包含的 OpenIdProviderMvc 示例,但它没有立即编译(无法解析程序集 ApplicationServices)。在我深入挖掘之前,我认为有人可能已经经历过这个过程。

4

1 回答 1

4

所以我想通了。DotNetOpenAuth 中包含的 OpenIdProviderMvc 示例项目工作正常。

我遇到的主要问题是依赖方站点需要将 localhost 列入白名单,如下所示:

configSections部分web.config

  <section name="dotNetOpenAuth" type="DotNetOpenAuth.Configuration.DotNetOpenAuthSection" requirePermission="false" allowLocation="true"/>

这是一个新的配置部分:

 <dotNetOpenAuth>
  <messaging>
   <untrustedWebRequest>
    <whitelistHosts>
     <add name="localhost" />
    </whitelistHosts>
   </untrustedWebRequest>
  </messaging>
 </dotNetOpenAuth>

如果您有兴趣,我还拼凑了一个更加愚蠢的提供程序“localid”,它允许您使用这样的 OpenID 登录:http://localid/member/anythingyoulike. 没有登录屏幕,只有无限的有效 OpenID 标识符数组。更多信息在这里

于 2010-09-09T13:29:18.977 回答