2013-12-09 2 views
-1

(1) 웹 응용 프로그램과 (2) 컴퓨터 간에는 ASP.Net 멤버 자격 증명이 데이터베이스에 저장되지 않는 이유는 무엇입니까?ASP.Net 멤버 자격 증명은 이식 가능합니까?

두 시나리오 -

  • 우리 백업 프로덕션 데이터베이스 및 개발 서버로 복원. 몇 초 전에 기본 데이터가 복원 되었더라도 개발 로그인 서버에서 프로덕션 로그인 자격 증명은 작동하지 않습니다.

  • 우리는 새로운 버전의 응용 프로그램 ("v2"라고 부름)을 제작 웹 사이트 (프로덕션 응용 프로그램 "v1"과 함께) 아래의 프로덕션 데이터베이스에 설치하지만 동일한 프로덕션 데이터베이스. 동일한 자격증 명 정보가 인데 동일한 데이터베이스와 통신 중이기 때문에 동일한 자격증 명 데이터을 보유하고 있어도 v2의 응용 프로그램에서 작동하지 않습니다.

web.config 파일에 컴퓨터 키가 없습니다. 이 부분을 생략하면 machine.config 파일에서 거품이 난다고 가정합니다. 즉, 동일한 컴퓨터 (두 번째 시나리오)의 동일한 데이터베이스에 대해 이야기하는 두 개의 웹 응용 프로그램이 컴퓨터간에 동일해야 함을 의미합니다 자격 증명, 맞습니까?

또한 데이터베이스에서 응용 프로그램 이름과 ID를 확인했으며 컴퓨터간에 동일합니다.

암호를 재설정하면 모든 것이 잘 작동합니다 (새 암호 사용). 그러나 이것은 모두가 자신의 암호를 재설정해야한다는 것을 의미합니다. 이는 이상적이지 않습니다.

어떻게 든 암호가 데이터베이스 서버에서 데이터베이스 서버로 변경되고 웹 앱에서 웹 앱으로 변경됩니다.

편집 : ASP.Net 4.5 System.Web.Security.SqlMembershipProvider 4.0을 사용하여

.

또 다른 편집 :

나는 PasswordFormat이 확인했다 "해시." 또한 두 데이터베이스간에 Password 및 PasswordSalt 필드를 확인했습니다. 그들은 동일합니다.

솔루션 :

가의 Web.config의 해싱 알고리즘이 두 응용 프로그램 사이에 다르게 설정했다.

+0

.Net 4.5. System.Web.Security.SqlMembershipProvider, v4.0 – Deane

+0

질문에 편집 할 수 있습니까? 관련성이 있습니다! – rene

답변

-1

해시 알고리즘은 두 웹 응용 프로그램간에 다릅니다. 하나는 기본 "SHA1"을 사용하고 다른 하나는 명시 적으로 "HMACSHA512"로 설정되었습니다.