2017-10-05 5 views
0

私のアプリケーションはすべてのアクションメソッド呼び出しに引数を記録しますが、ユーザー名とパスワードを記録するLogin()メソッドを除いて問題ありません。これを排除する方法はありますか?ControllerActionInvokerはASP.NETコアの引数としてパスワードをログに記録します

info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[1] 
    Executing action method Service.Auth.Api.Controllers.AuthController.Login (Service.Auth.Api) with arguments (USERNAME, PASSWORD) - ModelState is Valid 
+0

別々の引数の代わりにモデルクラスを使用することを検討してください。そうすれば、モデルクラスインスタンスだけがログに記録されます。 – poke

+0

それはうまくいきます。提案していただきありがとうございます。答えとして投稿すると、私は受け入れます。 – Arrkaye

答えて

1

個々のパラメータを渡す代わりに、ビューモデルオブジェクトの使用を検討する必要があります。そうすれば、あなたのビューモデルのインスタンスは、デフォルトではユーザー情報を公開しないであろうControllerActionInvokerによって記録されます。

public class LoginViewModel 
{ 
    [Required] 
    public string Username 
    { get; set; } 

    [Required] 
    [DataType(DataType.Password)] 
    public string Password 
    { get; set; } 
} 
[HttpPost] 
[AllowAnonymous] 
[ValidateAntiForgeryToken] 
public async Task<IActionResult> Login(LoginViewModel model) 
{ 
    if (ModelState.IsValid) 
    { 
     // … 
    } 
} 

これはまた、あなたが検証属性を使用し、モデルの状態を検証することができますあなたのコントローラーアクションの開始時に。

関連する問題