18

MVC3 사이트에서 작업 중이며 ASP.NET 멤버십에 수수께끼 같은 문제가 있습니다. SQL Azure 데이터베이스에 연결된 System.Web.Providers 1.0.1을 사용하고 있습니다.ASP.NET 멤버쉽 - 로그인이 로컬에서 작동하고 Azure에서 실패합니다.

이제는 Azure로 실행할 때 Compute Emulator에서 실행될 때 로그인하는 것과 동일한 사용자 이름/암호가 실패합니다. 회원 데이터베이스의 Failed Password Attempts 카운터가 업데이트됨에 따라 올바른 데이터베이스를 사용하고 있음을 알 수 있습니다.

+0

특정 문제가 무엇인지 말할 수는 없지만 배포에 Intellitrace를 사용하도록 설정하는 것이 좋습니다. Intellitrace를 사용하도록 설정하면 클라우드 프로젝트를 배포하고 로그인 시도를 한 다음 Intellitrace 로그를 다운로드하십시오. Intellitrace가 얼마나 강력하고 유용하다는 것을 알게 될 것이며 예외를 살펴봄으로써 문제를 해결할 수있을 것이라고 확신합니다. – astaykov

+1

제안 해 주셔서 감사합니다. 그러나 Intellitrace는 VS Ultimate에서만 지원되며 현재 MSDN 구독에 추가로 12,000 달러를 지불 할 준비가되었는지 확신 할 수 없습니다. 내 문제를 해결하지 못해. –

+0

잠깐만 요. "컴퓨팅 에뮬레이터 아래"라고 말하면 웹 사이트 나 IIS가 아닌 웹 역할이나 작업자 역할을 사용한다는 의미입니다. 맞습니까? 컴퓨터 키가 아래에서 변경되면 컴퓨팅 에뮬레이터의 동작이 변경됩니까? –

답변

28

this article by David Hoerster의 정보 덕분에 추적했습니다. 문제는 Azure의 기본 암호 해시 알고리즘이 .NET 4.0 기본값과 다르다는 것입니다. Azure에서는 SHA1로 설정되고 4.0에서는 HMACSHA256이 새로운 표준 설정입니다.

이 문제는 web.config에서 해시 유형을 명시 적으로 지정하여 해결할 수 있습니다. HMACSHA256과 같은 방법을 사용하기로 결정한 경우 컴퓨터 키도 지정해야합니다. 그렇지 않으면 자동 생성 된 컴퓨터 키가 서버마다 다를 수 있으므로 비슷한 문제가 발생합니다.

< machinekey>< system.web>에 따라 변경해야하는 구성 요소는 다음과 같습니다 당신은 적절한 형식으로 임의의 키를 생성 this machine key generator을 사용할 수 있습니다

<machineKey decryptionKey="PUT_DECRYPTION_KEY_HERE" 
      validationKey="PUT_VALIDATION_KEY_HERE" 
      decryption="AES" 
      validation="HMACSHA256" /> 

.

+1

참고해 주셔서 감사합니다! :) –

+1

당신은 환영합니다 - 만약 당신을 위해 아니었다면 나는 JACSHT를 알지 못할 것입니다 :-) –

+1

하하하 !! 그것은 들썩 들썩하다. 그 약어를 더 홍보해야합니다. 웃음을 가져 주셔서 감사합니다! –

관련 문제