2017-02-08 2 views
2

내 ASP.Net 코어 MVC 응용 프로그램을 해독 할 수 없습니다및 오류가 발생했습니다 - antiforgery 토큰이 <strong>Antiforgery</strong> 미들웨어 아래와 같이 추가 한

startup.cs을

services.AddMvc(); 
services.AddSession(); 
services.AddCaching(); 
services.AddSession(o => 
{ 
    o.IdleTimeout = TimeSpan.FromMinutes(120); 
}); 
services.AddAntiforgery(); 

내가보기와 컨트롤러

보기에 아래에 추가했습니다

컨트롤러

[HttpPost, ValidateAntiForgeryToken] 
public IActionResult Login(IFormCollection formCollection) 
{...} 

문제는 사용자가 다른 형태 건너 때 사용자가 항상 아래 얻을 수있다.

System.InvalidOperationException : 위조 방지 토큰을 암호 해독 할 수 없습니다. ---> System.Security.Cryptography.CryptographicException : 키 {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}을 (를) 키 링에서 찾을 수 없습니다.

나는 web.config에서 유효성 검사/암호 해독 키의 정적 쌍을 설정하는 것이 좋습니다. 그러나이 솔루션은 고전적인 asp.net 응용 프로그램에만 해당하는 것으로 보입니다. ASP.Net 코어에서 어떻게해야합니까?

+0

이 설명을 확인하십시오. https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/default-settings. 특정 디렉토리 경로에 대한 키를 유지함으로써 동일한 키 값을 다시 사용해야 할 수도 있습니다. –

답변

1

Linux 컨테이너에서 호스팅되는 ASP .net 핵심 응용 프로그램에서이 오류가 발생했습니다.

docs에서 키가 프로세스 내에서만 유지되는 특정 기준을 충족시키지 못하는 것 같습니다.하지만 저의 경우에도 작동하지 않습니다.

처음에는 오류가 기본 설정에서 발생했습니다.

  services.AddDataProtection() 
       .PersistKeysToFileSystem(new System.IO.DirectoryInfo(@"/var/my-af-keys/")); 

이 또한 내가 응용 프로그램 이름 설정했던 문제가 해결되지 않은 :

  services.AddDataProtection() 
       .SetApplicationName("fow-customer-portal") 
       .PersistKeysToFileSystem(new System.IO.DirectoryInfo(@"/var/dpkeys/")); 

내가 확인하지 않은를하지만
나는 다음 파일 시스템의 키에 대한 특정 구성을 추가 LXC 호스팅의 가능한 특성은 .net 코어가 앱의 ID를 유지할 수 없다는 것을 의미합니다.