0

DNOA ライブラリを使用して、Visual Studio でプロバイダーと証明書利用者を作成しましたが、うまく機能しました。次に、プロバイダーをサーバーに移動し、ローカル マシンの依拠当事者からテストしようとしました。RP で「OpenID エンドポイントが見つかりません」というエラーが表示されます。

Web.config に何かが欠けていると思います。属性にワイルドカード「*」を追加しました。これWhitelistHostにより、プロバイダーは誰からの要求も受け入れることができます (テスト目的で)。私が気づいていないことは他にありますか?私はこのトピックに比較的慣れていません。

Web.config -

<!-- The uri section is necessary to turn on .NET 3.5 support for IDN (international domain names),
   which is necessary for OpenID urls with unicode characters in the domain/host name. 
   It is also required to put the Uri class into RFC 3986 escaping mode, which OpenID and OAuth require. -->
<uri>
    <idn enabled="All"/>
    <iriParsing enabled="true"/>
</uri>

<!-- this is an optional configuration section where aspects of DotNetOpenAuth can be customized -->
<dotNetOpenAuth>
    <openid>
        <provider>
            <security requireSsl="false" />
            <behaviors>
                <!-- Behaviors activate themselves automatically for individual matching requests. 
           The first one in this list to match an incoming request "owns" the request.  If no
           profile matches, the default behavior is assumed. -->
                <!--<add type="DotNetOpenAuth.OpenId.Provider.Behaviors.PpidGeneration, DotNetOpenAuth"/>-->
            </behaviors>
        </provider>
    </openid>
    <messaging>
        <untrustedWebRequest>
            <whitelistHosts>
                <!-- since this is a sample, and will often be used with localhost -->
                <add name="localhost"/>
                <add name="*"/>
            </whitelistHosts>
        </untrustedWebRequest>
    </messaging>
    <!-- Allow DotNetOpenAuth to publish usage statistics to library authors to improve the library. -->
    <reporting enabled="true" />
</dotNetOpenAuth>

<appSettings>
    <add key="whitelistedRealms" value="http://localhost:39165/;http://othertrustedrealm/;http://localhost/;http://localhost:4856/"/>
    <!-- Set ImplicitAuth to true when using Windows auth, or false for FormsAuthentication -->
    <add key="ImplicitAuth" value="true"/>
</appSettings>
....

編集:問題があるかどうかはわかりませんが、サーバーはSSLを使用しています。

4

2 に答える 2

0

whitelisthosts 設定で明示的にしてみてください - サーバーのアドレスを入れてください。

これに加えて、RP と ID サーバーの両方でログを有効にします。RP でプロセスをステップ実行します。

また、開発用 PC とインターネットの間にプロキシはありますか? その場合、RP コードを介して通信する方法を RP コードに伝える必要があります。

于 2013-11-28T21:05:45.573 に答える
0

この質問に対する答えが見つかったかどうかはわかりませんが、同じ問題がありました。私は問題を修復することができましたが、プロバイダー側​​だけでなく依存部分側でも localhost をホワイトリストに登録しました。

于 2013-11-27T19:39:36.347 に答える