APIルートパラメータにログインしているユーザIDを渡したくないという状況があります。 たとえば、WebAPI [GETまたはPOST]エンドポイント 'api/getUserDetails/{id}'があります。このIDは、ユーザーデータを取得するために別のレイヤーに渡されます。WebAPI 2セキュアなルーティングパラメータ
public RestResult getUserDetails(int uID)
{
int uID = getFromHeaderCookie();
var userDetails = someService.GetUserDetail(uID);
return userDetails;
}
ここで、idは経路パラメータとして渡され、Id値を変更することで誰でも他のユーザのデータを見ることができます。
これで、URLは 'api/getUserDetails'のようになり、ログイン時に保存されたCookieヘッダーからIdを読み込みたいと考えています。 ActionFiltersを使用して私はIDを取得することができます。
public RestResult getUserDetails()
{
int uID = getFromHeaderCookie();
var userDetails = someService.GetUserDetail(uID);
return userDetails;
}
これは機能していますが、私はUserIdを保護したい他の方法があります。 int uID = getFromHeaderCookie();
を削除し、カスタムモデルバインダーを使用してコントローラにuserIDを挿入する方法はありますか?事前