2017-07-09 26 views
0

私はthis websiteを使用しています。角度2/4の.net core api認証を使用しています。.Net Core + Angular 2/4認証エラー

登録は機能しますが、認証(ログイン)時にトークンにエラーがあります。私は問題が何であるかを知らない

[AllowAnonymous] 
[HttpPost] 
public IActionResult Authenticate([FromBody]ApplicationUserDto applicationUserDto) 
{ 
    var appUser = _appUserService.Authenticate(applicationUserDto.Username, applicationUserDto.Password); 

    if (appUser == null) 
     return Unauthorized(); 


    var tokenHandler = new JwtSecurityTokenHandler(); 
    var key = Encoding.ASCII.GetBytes(_appSettings.Secret); 

    var tokenDescriptor = new SecurityTokenDescriptor 
    { 
     Subject = new ClaimsIdentity(new Claim[] 
     { 
      new Claim(ClaimTypes.Name, appUser.Id) 
     }), 
     Expires = DateTime.UtcNow.AddDays(7), 
     SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) 
    }; 

    var token = tokenHandler.CreateToken(tokenDescriptor); //Here returns the Error 
    var tokenString = tokenHandler.WriteToken(token); 

    // return basic user info (without password) and token to store client side 
    return Ok(new 
    { 
     Id = appUser.Id, 
     Username = appUser.Username, 
     FirstName = appUser.FirstName, 
     LastName = appUser.LastName, 
     Token = tokenString 
    }); 
    } 

HTTP500: SERVER ERROR - The server encountered an unexpected condition that prevented it from fulfilling the request.

はここに私のコードです:サーバーは私に、このエラーが発生します。私は慎重にウェブサイトを使用してコード(コピー貼りではない)を書いた。エラーは何ですか?

ありがとうございました!

答えて

1

エラーが見つかりました。

私は、プロジェクト(.netコアWeb API)にApplication Insightsを実装しました。上記のリクエストをもう一度Angular 2プロジェクトからリクエストしました。それからportal.azure.comに行って、Application Insightsのタブで開きました。失敗したリクエストを選択して詳細を表示しました。 Antherの例外のタイトルは言った:

System.ArgumentOutOfRangeException at MyProject.Controllers.ApplicationUsersController.Authenticate

は、その後、私はより多くの詳細については、それをクリックし、そこに私は問題を発見:

IDX10603: The algorithm: 'http://www.w3.org/2001/04/xmldsig-more#hmac-sha256' requires the SecurityKey.KeySize to be greater than '128' bits. KeySize reported: '64'. Parameter name: key.KeySize

キーがappsettings.jsonファイルに保存されます。だから私はもっと長いシークレットキーを与えるだけでした。

今は問題あります。

関連する問題