問題タブ [wcf-rest-contrib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf - セルフホステッド WCF REST サービスと基本認証
自己ホスト型の WCF REST サービスを作成しました (WCF REST スターター キット プレビュー 2 の追加機能を使用)。これはすべて正常に機能しています。
現在、基本認証をサービスに追加しようとしています。しかし、私はこれを行うのを妨げている WCF スタックでいくつかのかなり大きな障害にぶつかっています。
HttpListener
(自己ホスト型の WCF サービスが WCF スタックの低レベルで内部的に使用する) が、自己生成された応答にヘッダーを挿入しようとする試みをブロックしているようWWW-Authenticate
です401 Unauthorized
。なんで?
このヘッダーを忘れても、認証を機能させることができますWWW-Authenticate
(Microsoft も同様に行ったようです)。しかし、それが問題です。ヘッダーを送り返さないWWW-Authenticate
と、Web ブラウザーは標準の「ログオン」ダイアログを表示しません。ユーザーはエラー ページに直面するだけで、401 Unauthorized
実際にログオンする方法はありません。
REST サービスは、コンピューターと人間の両方がアクセスできる必要があります (少なくとも GET 要求レベルでは)。したがって、WCF REST はここで REST の基本的な部分に準拠していないように感じます。誰かが私に同意しますか?
自己ホスト型の WCF REST サービスで動作する基本認証を取得した人はいますか? もしそうなら、どのようにしましたか?
PS:明らかに、セキュリティで保護されていない基本認証を使用するという私の意図は、私のサービスでも HTTPS/SSL が機能することを前提としています。しかし、それは別の問題です。
PPS: WCF REST Contrib ( http://wcfrestcontrib.codeplex.com/ ) を試しましたが、まったく同じ問題があります。このライブラリは、自己ホスト型のシナリオでテストされていないようです。
ありがとう。
wcf - IIS7でのWCFRestサービスが2回認証されるのはなぜですか?
さて、誰かが私のためにこれにいくつかの光を当てることができれば、私はそれを大いに感謝します。だからここに行きます。先日、RESTサービスは正常に実行されていましたが、誤ってweb.configを上書きした後、すべての地獄が崩壊しました。私は過去1日半を費やして物事を整理しようとしましたが、何が欠けているか、置き忘れられているのか理解できないようです。
そのため、このサービスはWCF Rest Contrib(http://wcfrestcontrib.codeplex.com)の認証プロセスを中心に設計しました。これで、現在のweb.config(エンドポイントエントリを除く)を使用してローカルホストでこれを正常に機能させることができますが、discountaspにアップロードし、ISS7 Managerで[基本認証]を選択すると、認証されているように見えます2回!一度割引asp.netユーザー/パスを使用し、次にアプリケーションユーザー/パスを使用します。残念ながら、私は1セットのクレデンシャルしか提供しておらず、discountaspアカウント情報をアプリにハードコーディングしたくありません。前に言ったように、これは数日前にうまくいきました。ともかく。これが私のweb.configです。
したがって、これをアップロードしてISS設定を基本認証に変更すると、Webアプリのユーザー/パスを入力しようとしたかのように、認証にデフォルトのハンドラーを使用しようとしているように見えます。次のようなエラー画面が表示されます。 moduel/handlerに関する詳細情報
詳細なエラー情報
モジュール: IIS Webコア
通知: AuthenticateRequest
ハンドラー: svc-ISAPI-2.0
エラーコード: 0x80070005要求されたURL: http ://www.mydomain.com:80 / MyService ... / MyService.svc
物理パス: E:\ web \ xxxxxx \ htdocs \ MyServiceBaseAddress \ MyService.svc
ログオン方法:まだ決定されていません
ログオンユーザー:未確認まだ決まっている
さて、楽しいことのために...キック用のdiscountasp.netアカウントのユーザー名/パスワードを提供してみましたが、[ OperationAuthentication]が定義されていない[OperationContract](1つまたは2つだけです)に対して適切に応答することを確認しました私が持っている操作)。
これは変だと思ったので、フィドルを見て面白いものを見ました。
[OperationAuthentication]が定義されたプロシージャをリクエストし、discountasp.netのユーザー名/パスを提供しようとすると、Fiddlerに2つの異なる「WWW-Authenticate」ヘッダーが返されます。
WWW-認証:基本的なrealm = "MyRESTServiceRealm"
WWW-認証:基本的なrealm = "www.mydomain.com"
一方、アプリケーションのユーザー/パスのみを使用して同じ手順にアクセスしようとすると、サイトのヘッダーのみが取得されます。
WWW-認証:基本的なrealm = "www.mydomain.com"
私の仮説は、何らかの理由で、アプリケーションの「カスタム基本認証」レイヤーに到達する前に、IISによって設定されたデフォルトの「基本認証」レイヤーを通過する必要があるというものです。
discountasp.netアカウントに使用するサービスと同じユーザー/パスを作成してこれを確認した後、問題なく両方の認証レイヤーを正常に渡すことができました...したがって、これは確かに問題。デフォルトのものを無効にするにはどうすればよいですか?IISマネージャーまたはweb.configでこれを行う必要がありますか?
とにかく、これがどのように可能であるか、または問題を解決するために何をする必要があるかはまったくわかりませんが、何かがひどく手に負えないことは知っています。
任意の提案をいただければ幸いです!ありがとう。
c# - WcfRestContrib:デスクトップクライアントから(基本認証を使用して)WCF RESTサービスを使用する例はありますか?
デスクトップクライアントからの基本HTTP認証でWCFRESTサービスを使用する例はありますか?WCFRESTContribを使用しています。ブラウザからjavascriptクライアントを使用する場合は認証が正常に機能しますが、C#コンソールアプリを使用しようとすると認証が機能します。BasicUnauthorizedException {"安全なリソースへのアクセスに失敗しました。"}が発生します。正しいユーザー名とパスワードを指定したにもかかわらず。
どんな助けでもありがたいです。
c# - プログラムでWCFRESTクライアントプロキシを作成する(C#で)
以下のコードを使用してC#でプログラムでRESTクライアントプロキシを作成しようとしていますが、CommunicationExceptionエラーが発生し続けます。私は何かが足りないのですか?
私がそれを次のように使うことができるように:
android - WCF/RESTfulサービスを消費するAndroidアプリケーション
WcfRestContribに基づいて作成したWCFRESTfulアプリケーションがあり、iis7.5でホスティングしています。これはpdfをbyte[]として渡します。私は、Androidアプリケーションでこのサービスを利用する方法と最善の方法を理解しようとしています。このサービスはJavaを使用する外部の会社によって使用されているため、Java/WCFの相互運用の問題はすべて処理したと思います。しかし、私はそこに多くの例を見ていません。XMLではなくJSONを渡すメソッドを作成する必要があることを読みましたが、それ以外の場合は、Androidアプリで使用できるはずです。RESTfulサービスを使用するAndroidアプリの例はあまり見かけませんが、これはAndroidに推奨される方法ではありませんか?
いくつかの記事(http://romenlaw.blogspot.com/2008/08/sumption-web-services-from-android.html)を見ましたが、それらはまだ役立つかもしれませんが、ほとんどは古いようです。そこにいる専門家が私がそのようなプロジェクトを処理することをどのように提案するのか興味があります。必要に応じて別の種類のサービスを作成できます。いくつかのパラメータに基づいてサービスからPDFをロードできるようにしたいだけです。セキュリティは懸念事項ですが、この段階では必須ではありません。サービスは現在基本認証を使用しており、https上にあります。
何かご意見は?提案?
c# - WebAuthenticationConfiguration の使用時に 401 チャレンジ応答を有効にする
WcfRestContrib を使用してカスタム基本認証を許可する、非常に単純な WCF4 Restful Web サービスがあります。クライアントがユーザー名とパスワードをプリエンプティブに提供する場合はうまく機能しますが、そうでない場合は、クライアントに資格情報を提供するように要求するのではなく、400 Bad Request 応答を返します (401 応答を介して)。
このサービスは、必要なクラスを属性で装飾することにより、WcfRestContrib を実装する宣言的アプローチを使用しています。これが私の ServiceContract 宣言です。
非常に単純な操作が 1 つだけあります。
そして、私のようにUserNamePasswordValidator
見えます(ただし、資格情報が渡されたときにのみ呼び出されるため、おそらく問題ではありません):
WcfRestContrib をデバッグしようとしたところ、WebBasicAuthenticationHandler
クラスがBasicAuthorizationException
(フレームワーク コードでのみキャッチされる) をスローしていることがわかりましたが、何らかの理由で例外が 401 に変換されていません。
私がWcfRestContrib github サイトで読んだ内容に基づいて、その作者 (Mike O'Brian) が投稿した問題があり、401以外のものを返すようにしたいと言っています。 401チャレンジ。
この機能がある場合、何が欠けているのでしょうか、それとも何か間違っていますか?
アップデート
WcfRestContrib でこれを行う方法がない場合、(IIS で標準の Windows ベースの基本認証を使用する以外に) これを達成する別の方法はありますか? 私は(他の)代替ソリューションを受け入れます。