wcf IPアクセス制限の実現

1484 ワード

wcfがアプリケーションを開発するとき、指定したクライアントのみがサービスにアクセスし、他のクライアントがサービスにアクセスできないようにする方法が問題になることが多い.一連のハッカー攻撃や不正呼び出しなどを防ぐことができることが多いからです.
今日は、wcfでアクセス先のパソコンのIPアドレスを取得してフィルタリングする方法を紹介し、一定の効果を達成します.この方法はaspを結合する.Netなどのwebアプリケーションは良い効果があります.
なぜならNetのメカニズムは特定のサーバがwcfにアクセスすることであり、silverlightなどのriaや普通のwinプログラムでは効果が得られない.このようなクライアントは彼のipを確定できないため、現在多くの中国のユーザーがadslダイナミックipを使用している.
このスキームはaspに構築することを提案する.Net結合ソリューションでは.
1.wcfの簡単ないくつかのコードだけでアクセス先のIPアドレスを取得することができます:
 1:  [OperationContract]
 2:  public string GetCustomerIP()
 3:  {
 4:      string CustomerIP = "";
 5:  
 6:      if( HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
 7:          CustomerIP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
 8:      else if (HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] != null)                
 9:          CustomerIP = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
10:      return CustomerIP;
11:  }
12:  

以上のコードで呼び出し先のipアドレスを取得できます.さらに修正すれば,IPアクセスを制限するwcfサービスとなる.須然IIS 7はIPアクセス制限機能も提供しているが、導入面では操作をより簡単にしている.これもいろいろな案です.本文が皆さんに役に立つことを願っています.