問題タブ [asmx]
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.
.net - ASMX ユーザー名とパスワードのセキュリティ
実行しようとしている基本的な ASMX サービスがあります (WCF を使用したいのですが、サーバーで動作させることができません)。セキュリティなしのセットアップでは問題なく動作しますが、セキュリティをオンにするとすぐに次のようになります。
HTTP 要求は、クライアント認証スキーム「匿名」では許可されていません。サーバーから受信した認証ヘッダーは、「基本レルム="セキュア領域"」でした。
私が欲しいのは、ユーザーに名前とパスワードの種類の解決策を最小限に求めることです。
IntelliSense でコードを調べてみても、必要と思われるものは何も見つかりません。
これは便利なように見えますが、WCF のようです。
これをライブデモにできることに気づきました:
ここにサービスがあります:http://smplsite.com/sandbox3/Service1.asmx
ユーザー名はtestapp
で、パスワードはtestpw
です。そのサービスで関数を呼び出すコマンド ライン アプリが必要です。
セキュリティを追加する前に、この行はAdd Web Service Reference
その URL で実行した後、基本的な VS プロジェクトで機能しました
これは私の現在の試みです(うまくいきません)
編集:ところで、これはウェブサイトでもブラウザで実行されているものでもありません。アクセスコードはC# command line app です。また、認証は、私が制御していない別の IIS プラグインによって行われています。
編集2:明確にするために。私が探している解決策は、純粋にクライアント側の問題です。
編集 3:アクセス制御は.haccess
一種のシステムを介して行われ、その方法が気に入っています。サービスコードで認証を行いたくありません。
asp.net - asp.net WebMethodによって返された例外のスタックトレースを隠していますか?
aspx ページで属性 [WebMethod] を持つメソッドを使用しています。asp.net ajax は使用しませんが、jQuery を使用してこれらのメソッドを呼び出し、JSON でオブジェクトを返します。これはすべてうまくいきます。
次に、webMethod 内に認証チェックを追加しました。現在のユーザーが機能にアクセスできない場合は、呼び出し元の JavaScript に知らせる必要があります。
そのため、JavaScript の OnError コールバック関数で解析できる AccessViolationException 例外をスローしています。これも機能しますが、例外には完全な StackTrace が含まれており、呼び出し元のクライアントがこれを利用できるようにしたくありません。
WebMethod がビジネス オブジェクトを返したときに、「アクセスが拒否されました」をクライアントに返すために使用できる他の方法はありますか?
ASP.Net 3.5SP1 と jQuery 1.32 を使用しています
c# - Visual Studio オプションの違いは何ですか: ASP.NET Web サービスと WCF サービス
Web サービスで使用できることがわかっているオプションが 2 つあります。WCF はもちろん、ASP.NET Web サービスです。違いは何ですか?私は最近 WCF を始めたばかりで、過去に Web サービスに少し触れたことがありますが、私は確かに専門家ではありません。
web-services - ワークステーションAとBで同じクレデンシャルを使用した場合、偽装は許可に失敗します
ケース1.JOHNXP(http:// localhost / WebClientなど)と呼ばれる自分のPCから小さなテストサイトを参照すると、.aspxページがASMX Webサービスを呼び出し、資格情報を取得して別のマシン上の別のWebサービスに渡します(同じドメイン内のSERVERTRIM)。要求の結果、資格情報を使用してSERVERTRIMマシンにセキュリティログエントリが表示されます。
ケース2.同じドメイン内の別のPCに移動し、個人のデスクトップで使用したのと同じ資格情報でログオンします。上記の同じテストサイト(今回はhttp:// johnxp / WebClient)を参照すると、これが.aspxページに浸透します。
System.Web.Services.Protocols.SoapException:サーバーはリクエストを処理できませんでした。---> System.Net.WebException:リクエストがHTTPステータス401:Unauthorizedで失敗しました
SERVERTRIMのセキュリティログを見ると、ケース2のアクセスにより、401/Unauthorizedを説明しているように見えるANONYMOUSLOGONが発生したことがわかります。
WSが別のサーバー上のベンダーのWebサービスを呼び出すときに、ログインしたDOMAINユーザーの資格情報を使用するようにWebサービスを取得しようとしています。
ASMX Webサービスはデスクトップで実行されます(IIS 5.1 WinXP Pro-マシン名はJOHNXPです)。関係するすべてのサーバーで匿名のUNCHECKEDを有効にし、シナリオに関係するすべてのweb.configでこれを使用しています。
ベンダーのWebサービスはSERVERTRIM(Win 2003 Server)で実行され、ASMXでもあり、WSE3.0を使用します。
WiresharkとNetmonは、今のところ私にとってツールとしては手ごわいように見えます。「リモート」サーバー(SERVERTRIM)で結果として得られるさまざまなLOGONは、十分な「証拠」であると考えています。上記のすべてのマシンは同じドメインにありますが、可能な場合は、「リモート」WebサービスをSERVERTRIMに、中間Webサービスを同じドメインの別のサーバーに保持したいと思います。このシナリオでは、「委任」を掘り下げる必要がありますか?ドメイン内の別のマシンでWeb要求が開始されたときに、同じクレデンシャルがANONYMOUS LOGONになる理由を監視するための最も簡単なツールは何でしょうか?
web-services - ASP.NET要求が使用しているWebサービスプロトコルを検出するにはどうすればよいですか?
次の説明に従って、SoapExtension.ProcessMessage(SoapMessage)オーバーライドを使用してクライアントを認証するASP.NET(1.1)Webサービスがあります。
http://www.codeguru.com/columns/experts/article.php/c5479
ただし、HttpSoapが許可されている唯一のプロトコルであるようにweb.configが設定されていない場合、ProcessMessageは他のプロトコルで着信する要求に対して呼び出されることはないため、セキュリティをバイパスします。
(web.configが正しいことに依存するのではなく)SOAPが使用されていることをプログラムで確認する方法はありますか?
ありがとう。
windows - VisualStudio2005でWebサービスが実行されているアカウントを確認する方法
なりすましと委任に関するドキュメントを理解しようと少し気が狂いそうですが、私のWebサービスがどのアカウントで実行されているのかという質問が出てきました。
JOHNXPという開発ワークステーションにmyDomainName\johnaとして記録されています。Vstudio2005から、デバッグを介してWebサービスを開始すると、ブラウザーにwsdlページが表示されます。
タスクマネージャーから、.asmxコードのブレークポイントに座っているときに次のように表示されます。
aspnet_wp.exe pid = 1316 UserName = ASPNET devenv.exe pid = 3304 UserName = johna
ws.asmxコードをホストする仮想ディレクトリの[IISディレクトリセキュリティ]タブで、[匿名アクセスを有効にする]がオフになっており、[統合Windows認証]がオンになっています。
それで、MSDNの人々が「サーバープロセスを実行するユーザーアカウントを構成する必要がある」と言ったとき、上記の私の小さなWebサービスの場合、彼らは何を参照しますか?
私は引用しています:http: //msdn.microsoft.com/en-us/library/aa302400.aspx
最終的に、私のこのWebサービスは、認証されたドメインユーザーが閲覧して、私のWebサービスを呼び出すために偽装することを望んでいます。私のWebサービスは、別のサーバー(ただし同じドメイン)で別のASMXWebサービスを使用します。偽装されたドメインユーザーの資格情報(JOHNXP上の私のWebサービスの資格情報ではない)を使用するには、このリモートWebサービスが必要です。
そのため、これを理解するのが少し厄介になり、Webサービスが使用しているアカウントについて不明な点があります。WinXP上のIIS5.1のASPNETだと思いますが、よくわかりません。
.net - ASMX Web サービスの最初の要求が遅い
1 つの IIS アプリケーションで多数の .NET Web サービスを実行しています。これらの Web サービスは、別の IIS アプリケーション (フロントエンド) によって使用されます。最初の呼び出しはかなり遅く、約 5 ~ 10 秒です。その後はミリ秒です。最初の呼び出しは、パフォーマンスの問題と見なされます。
これらすべての Web サービスを呼び出すアプリケーションを試してみましたが、明らかに何も解決しません。したがって、問題はデフォルトのアプリケーション リサイクルではありません。サービスを数回初期化し、1 つのインスタンスを作成するのにかかる時間を測定するだけのアプリケーションを作成しました。このアプリケーションを実行する前に、Web サービス アプリケーションが開始/リサイクルされていることを確認してから、アプリケーションを実行します。最初の初期化には 2 ~ 4 秒かかり、その他はすべてミリ秒です。
もう 1 つの考えは、フロントエンド アプリケーションですべての Web サービスを開始するページを作成し、ユーザーが入る前にこのページを呼び出すことです。
web-services - Mono2.0.1 の Web メソッド応答形式
シリアル化されたオブジェクトを格納する文字列を返す [WebMethod] を作成しました
JQuery から $.post を使用してメソッドを呼び出すと、次のようになります。
問題はレスポンスです。ここで私が得るもの:
JSON 応答が XML 内にカプセル化されているのはなぜですか? HTTP 応答ヘッダーが (間違って?) 次のように設定されていることがわかります。
応答のコンテンツ タイプを切り替えるにはどうすればよいですか? ありがとう。