1

Visual Studio 2010 を使用して、ASP.NET で基本認証 WCF サービスを実装しています。このガイドの最初のいくつかの部分に大まかに従ってこれを達成しました。

<asp: Login>このコード ビハインドとプロパティを使用して、WCF サービスを使用してユーザーを認証するように既定の ASP.NET Web サイト (VS2010) のログイン ページを設定しました。

protected void Login_Authenticate(object sender, AuthenticateEventArgs e)
{
    bool isAuthenticated = false;

    string customCredential = "Not used by the default membership provider.";
    bool isPersistent = LoginUser.RememberMeSet; // Authentication ticket remains valid across sessions?

    AuthenticationServiceClient authClient = new AuthenticationServiceClient();

    isAuthenticated = authClient.Login(LoginUser.UserName, LoginUser.Password, customCredential, isPersistent);

    e.Authenticated = isAuthenticated;
    authClient.Close();
}

さらに、IIS Express を使用していたときはこれが機能していましたが、その後 IIS 7.5 に移行しました。

上記の関数が呼び出されると、 への呼び出しで例外がスローされauthClient.Login(...)ます。

通常のエラー ページが表示され、次のように表示されます。

「/AuthClientSite」アプリケーションでサーバー エラーが発生しました。

AuthenticationService が無効になっています。

説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.ServiceModel.FaultException`1[[System.ServiceModel.ExceptionDetail, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]: AuthenticationService が無効になっています。

このコードは IIS Express で機能したものとほぼ同じであり、サービスが無効になっているように見えるため、IIS のどこかで修正が必要な設定であると推測しています。

上記のリンクSystem.Web.ApplicationServices.AuthenticationServiceに見られるように、サービスをラッピングしています。

何が起こっているのかについてのアイデアは大きな助けになります。ここ数日でいろいろなことを試したので、すべてを思い出したりリストしたりすることはできませんが、すべての質問/コメントに答えるために最善を尽くします.

4

1 に答える 1

3

だから私は自分の問題を理解しました。サービスを実行している Web サイトの Web.config ファイルに次の行を追加する必要がありました。

<system.web.extensions>
    <scripting>
        <webServices>
            <authenticationService enabled="true"
                requireSSL = "false"/>
        </webServices>
    </scripting>
</system.web.extensions>

これが、将来この問題に遭遇した人に役立つことを願っています。

于 2012-05-30T15:52:01.507 に答える