1. 概要:
Web サービスは、企業が特定のビジネス ニーズを完了するために公開するオンライン アプリケーション サービスであり、他の企業やアプリケーション ソフトウェアがインターネットを通じてこのオンライン サービスにアクセスして使用できます。各アプリケーションは、ネットワーク プロトコルおよび一部の指定された標準データ形式 (Http、XML、Soap) を通じて Web サービスにアクセスし、Web サービスの内部実行を通じて必要な結果を取得します。インターネット経由で呼び出すため、ネットワーク ユーザーが呼び出すにはセキュリティ上の問題があるはずです。 Web サービスのアクセス許可制限をどのように実装するかは、Web サービス ユーザーが直面する重要な問題です。以下に、上記の問題を浅いものから深いものまで解決するための 2 つの解決策を示します。
2. 「soapheader」機能に基づく単純なメソッド
1. 「soapheader」の概要
SOAP ヘッダーは、データが直接関連していないことを条件として、XML Web サービス メソッドとの間でデータを渡すためのメソッドを提供します。 XML Web サービス メソッドの主な機能について説明します。 ほとんどの場合、ユーザー認証情報を転送するために使用されます。もちろん、その役割はそれをはるかに超えており、実際のアプリケーションではまだ発見されていません。
2.soapheader はユーザー認証コードを実装します
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; namespace UserCenter { public class MySoapHeader :SoapHeader { public string UserName { get; set; } public string PWD { get; set; } } /// <summary> /// MyMath 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 // [System.Web.Script.Services.ScriptService] public class MyMath : System.Web.Services.WebService { public MySoapHeader sHeader; [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] [SoapHeader("sHeader")] public string add(int x, int y) { if (sHeader.UserName == "test" && sHeader.PWD == "test") { return (x + y).ToString(); } else { return null; } } } }
3. 欠点分析:
(1) サービスロジックとユーザー権限検証ロジックが混在し、プログラムの理解が複雑になります。
(2) パーミッションロジックの再利用性は高くありません
2.「SoapExtensionAttribute」機能に基づくメソッド
1. SoapExtensionAttribute と SoapExtension の概要
SoapExtension と SoapExtensio。 2 つの属性クラスは、Web サービスのシリアル化と逆シリアル化の一般的なプロセスを制御するために使用され、Web サービスの圧縮やログ記録などの機能を制御できます
2 のセキュリティ設定の完全な内容です。 Web サービス、それができることを願っています。参考までに、皆さんも PHP 中国語 Web サイトをサポートしていただければ幸いです。
ASP.NET の Web サービスのセキュリティとアクセス制御に関するその他の記事については、PHP 中国語 Web サイトに注目してください。