1

暗号化されたリクエストを受信し、完了したら応答を暗号化する古いAPIがあります。これをmvc4webapiに切り替えようとしていますが、この暗号化に到達するまでスムーズに進みました。私が必要としているのは、リクエストが入ったときにリクエストを復号化して、MVCが適切に動作するようにする方法です。また、プロセスが完了したら、応答を送信する前に暗号化します。各アクションに暗号化部分を配置したくありません。

注:本文は引き続き単一のアイテムとして適切にフォーマットされているため、独自のセレクターを使用して1つのアクションですべてをプッシュしますが、より適切なレストスタイルの実装を希望します。

4

2 に答える 2

0

独自のモデルバインダーを実装できます

public class DecObjModelBinder : IModelBinder
{   


  public object BindModel(ControllerContext controllerContext, 
      ModelBindingContext bindingContext)
   {
    //make a instance of your object
    var myObj = new DecObj()

    //bind the properties from my obj

    myObj.Title= bindingContext
        .ValueProvider
        .GetValue("Title") // The Property name sent from the browser
        .ToString();

    /* then the property you want to decrypt */
    var encBody = bindingContext
        .ValueProvider
        .GetValue("EncBody") // The Property name sent from the browser
        .ToString();

    /* decryption logic here to the encBody then after assign the decrypted value to myObj*/

    return myObj;
   }

次にModelBinder、Global.asxのApplication_Startに次の方法で登録します。ModelBinders.Binders.Add(typeof(DecObj), new DecObjModelBinder());

于 2012-04-09T15:15:03.410 に答える
0

これは、MessageHandlerを使用して実行できるはずです。WebAPIContribでMessageHandlerを作成する方法の例はたくさんあります

于 2012-04-10T02:01:43.760 に答える