0

クライアントがコードを介してアクセスできるようにしたいMVC4C#アプリケーションがあります(ブラウザーやビューはありません)。クライアントは、レコードの検索に使用されるユーザーIDを送信し、3つのフィールドが返されます。受信データと送信データはどちらも機密情報であるため、安全なソリューションが必要です。アプリケーションはSSL(https)を使用するサイトで実行されていますが、2つの回答が示唆しているように、JSONソリューションを使用する場合、これによりJSONハイジャックから保護されますか?

public ActionResult InAction(string id)
{ 
  // code to retrieve record and return three fields field1, field2, field3

  return (what would go here?)
}

これを処理するためにコントローラーアクションを使用することもできますか?これを行うには本格的なWebサービスが必要ですか?そうであれば、優れたMVCチュートリアルへのリンクが役立ちますか?

クライアントはASP(Webフォーム)で動作し、キーと値のペアを持つレスポンダーページについて話します。MVCで同等の処理を行うにはどうすればよいですか。

私を動かすための助けは大歓迎です。

ありがとうございました

更新: BrettのJSON提案を回答としてマークしました。配列ではなく文字列を返していますが、トランザクション全体がSSL接続を介して行われているため、JSONハイジャックの可能性は問題ではないと思います。

  string response = field1 + "," + field2 + "," + field3;
  return Json(response), JsonRequestBehavior.AllowGet; }

それを間違えた場合はお知らせください。

4

2 に答える 2

2

nikeaaが言及しているように、JsonResultを返すアクションをコントローラー内に作成するだけです。

public JsonResult InAction(string id)
{
    // get some object from repository
    var repository = new ObjectRepository();
    var returnObj = repository.GetObject(id);
    return Json(returnObj, JsonRequestBehavior.AllowGet);
}

デフォルトの.DenyGetをオーバーライドするには、JsonRequestBehaviour.AllowGetを指定する必要があります。ただし、これにより、GETリクエストでJSONを返すときにセキュリティの脆弱性が発生します。 詳細については、このStackOverflowの回答を参照してください。

于 2013-02-11T23:04:50.140 に答える
0

データを返す形式によって異なります。たとえば、JSON形式でデータを返す場合は、次のように使用できます。

return (Json(userResultModel));

また、メソッドの戻りタイプをJsonResultに変更することもできます。

于 2013-02-11T22:51:30.480 に答える