2017-07-19 15 views
0
[WebMethod] 
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] 
public string getUser(string[] username){ 
    string[] result= new string[5]; 
    string qry=""; 
    for(int i=0;i<5;i++) 
    { 
     username[i]= a; 
     qry="SELECT * FROM USER WHERE USERNAME='" + a + "' "; 
     result[i] = getjsondata(qry); 
     return result[i]; 
    } 

} 

メソッドを実行しようとすると、プリミティブ型をパラメータとするメソッドに対してのみテストフォームが使用可能であることが示されます。私はパラメータとしてListを試しましたが、それも失敗します。パラメータとしてstring[]WebMethodに渡したいとします。asp.netのwebserviceにパラメータとして文字列配列を渡す方法

+0

示すように、コードがSQLインジェクション攻撃に対して脆弱で、名前にアポストロフィが含まれている場合、それは動作しません。文字列連結の代わりにSQLパラメータを使用するようにコードを修正する必要があり、両方の問題が解決されます。 –

+0

完全に無関係ですが、私はWeb APIを使うことを検討します。はるかに流暢で自己文書化して作業する喜びです。基本を拾い上げ、実用的なソリューションを構築するために私に1日かかりました。エンティティフレームワーク?あなたの枠組み/仕事の制約による制約。無視してください。 –

答えて

0

URL /クエリ文字列のパラメータのみをサポートするGET操作を使用しています。

プリミティブ以外のパラメータタイプの場合は、HTTPボディを使用する必要があります。本体を使用するには、POSTまたは他のHTTP操作のいずれかを使用する必要があります。

は、詳細については、この答えを参照してください:Simple post to Web Api

関連する問題