asp.Netweb apiはローカル環境かどうかを判断する

2839 ワード

< ![CDATA[
ローカルでコードを書くこともありますが、判断がたくさん入っています.あるいはパラメータが直接伝わるとか
ローカル環境かどうか、ローカル環境でない場合は正常にアクセスする必要があります.ローカル環境であれば、直接データ等を返す
以前は直接判断127.0.0.1またはその他であった.
now:
HttpRequest.IsLocal で実現可能
localhostの先頭またはiisの127.0.0.3 ipアクセスにかかわらず.ドメイン名asdを直接hostバインドします.comアクセスは、正常に判断できます
まず拡張方法を追加します
 public static class HttpRequestMessageExtensions
    {
        public static bool IsLocal(this HttpRequestMessage request)
        {
            var localFlag = request.Properties["MS_IsLocal"] as Lazy<bool>;
            return localFlag != null && localFlag.Value;
        }
    }

使用
 // GET api/values
        public IEnumerable<string> Get()
        {
            if (!Request.IsLocal())
            {
                return new string[] { "value1", "value2" };
            }
            else
            {
                return new string[] { "value1" };
            }
        }

 
とても便利です.
 
 
 ]]>