wcf IPアクセス制限の実現
1484 ワード
wcfがアプリケーションを開発するとき、指定したクライアントのみがサービスにアクセスし、他のクライアントがサービスにアクセスできないようにする方法が問題になることが多い.一連のハッカー攻撃や不正呼び出しなどを防ぐことができることが多いからです.
今日は、wcfでアクセス先のパソコンのIPアドレスを取得してフィルタリングする方法を紹介し、一定の効果を達成します.この方法はaspを結合する.Netなどのwebアプリケーションは良い効果があります.
なぜならNetのメカニズムは特定のサーバがwcfにアクセスすることであり、silverlightなどのriaや普通のwinプログラムでは効果が得られない.このようなクライアントは彼のipを確定できないため、現在多くの中国のユーザーがadslダイナミックipを使用している.
このスキームはaspに構築することを提案する.Net結合ソリューションでは.
1.wcfの簡単ないくつかのコードだけでアクセス先のIPアドレスを取得することができます:
以上のコードで呼び出し先のipアドレスを取得できます.さらに修正すれば,IPアクセスを制限するwcfサービスとなる.須然IIS 7はIPアクセス制限機能も提供しているが、導入面では操作をより簡単にしている.これもいろいろな案です.本文が皆さんに役に立つことを願っています.
今日は、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アクセス制限機能も提供しているが、導入面では操作をより簡単にしている.これもいろいろな案です.本文が皆さんに役に立つことを願っています.