0

(WCFDS = WCF Data Services 5、Entity Framework によって支えられ、oData v3 を使用し、JSON としてフォーマットされ、IIS7 経由で提供され、Windows 認証によって保護されます。)

重要なのは、AJAX 呼び出しから認証された方法で WCFDS にアクセスすることです。

この目的のために、Web.config で Windows 認証が設定された ASP.Net Web アプリケーションとしてのクライアントと、WCFDS を指すサービス参照があります。

クライアント側の JavaScript を使用してサービス リファレンスにアクセスしたいと考えています。これどうやってするの?

aspx ページを作成し、クライアントでホストし、JavaScript コードからこのページを直接呼び出して、サービス参照を通じてデータを取得することを考えましたが、サービス参照のすべての機能を公開する方法について途方に暮れていますこのように(エンティティは数十あります)。

誰でもアドバイスを手伝ってもらえますか?

4

1 に答える 1

0

web.config の Windows 認証設定は、WCF Data Services とは直接関係がないため、おそらく何も設定する必要はありません。IIS で適切に設定する必要があります。

WCF Data Services での Windows 認証の使用に関する優れた記事が多数あります。一言で言えば、許可を公開する方法を自由に選択できます (フィードから個々のエンティティを除外することから、401/403 をスローすることまで)。

読んでおくとよい記事がいくつかあります。

あなたが書くことができる最も単純なコードは、次の行に沿ったものです。

namespace Scratch.Web
{
    [ServiceBehavior(IncludeExceptionDetailInFaults = true)]
    public class ScratchService : DataService<ScratchContext>
    {
        [QueryInterceptor("Products")]
        public Expression<Func<Product, bool>> ProductsAuthorization()
        {
            if (!HttpContext.Current.Request.IsAuthenticated)
            {
                return (p) => false;
            }
            return (p) => HttpContext.Current.User.IsInRole("AllowAccessToProducts");
        }

        // ...rest of service code...
    }
}

クライアント側のすべてはブラウザによって制御されるため、実際には何もする必要がないことに注意してください (最大の手順は、サイトを信頼済みサイトに追加することです。ドメインに参加しているマシン上にある)。

于 2012-07-19T16:19:43.787 に答える