2011-02-08 2 views
6

현재 ASP.Net 인증에 이상한 문제가 있습니다. 다음 두 줄을 고려FormsAuthentication.Authenticate가 인증에 실패합니다.

MembershipCreateStatus ct = new MembershipCreateStatus(); 
Membership.CreateUser("admin", "mypassword", "[email protected]", "1", "1", true, out ct); 

이 내 데이터베이스에 내 사용자를 등록 않습니다. 나는 이것을 확인했다. 내가 직후이 프로그램을 실행할 때 그러나 :

FormsAuthentication.Authenticate("admin", "mypassword"); 

인증이 실패합니다. 내가

MembershipUserCollection uc = Membership.FindUsersByName("admin"); 

을 실행하고 UC 내 관리 사용자 가지 모든 적절한 정보를 보유 않는 경우 이상한 것은 내가 사용자가 DB에 존재하는 사실을 알고 있으며, 그것은 더 확인된다. Authenticate가 false를 반환하는 이유에 대한 아이디어 나 힌트가 있습니까?

+0

전체 시퀀스가 ​​단일 http 요청이 아니면 안됩니까? 두 가지 별도의 요청 과정에서이 작업을 시도해 볼 수 있습니다. 한 번 "admin"을 만드는 방법, Session.Abandon(), 페이지를 다시로드 한 다음 인증 할 수 있는지 확인하십시오. – xanadont

+0

Hrm nope. 별도의 페이지에서 인증하려고해도 문제는 암호 부분에서 발생해야합니다. 사용자가 존재하면 다른 무엇이 잘못 될 수 있습니까? – snwr

답변

4

나는 조금 전에 배웠습니다. MSDN 에 대한 정보를 찾을 때 항상 비고란을 읽어보십시오. 당신은 그것이 커버되지 않으면 때때로 몇 시간 동안 당신을 함정에 빠뜨릴 수있는 가장 중요한 정보를 포함하고 있다는 것에 놀랄 것입니다. 해당 방법은 해당 섹션 here을 참조하십시오. 그런 다음 ValidateUser으로 전화를 걸어 인증과 다른 인증을 받으십시오. 보세요 here.

+1

아 감사합니다. 그건 의미가 있습니다. msdn에서 길을 잃고 모든 페이지에서 비평 섹션을 읽지 않는 것이 쉽습니다. – snwr

+0

최근에이 사이트의 질문에 답하는 중에도 많은 밤의 수면 시간을 잃어 버렸습니다. 나는 2-3 개의 질문을했는데, 바로 그곳에 있었다는 것을 알았습니다. 그렇다면 나는 직장에서의 사례인지를보고 싶었습니다. 까다로운 상황이있을 때 대부분 70 % 정도였습니다. 직접 시도해보십시오. 놀랄거야. 그런 다음 '설명'이 빨간색 글꼴이거나 '중요'섹션을 더 잘 부르는 경우 훨씬 더 읽기 쉽습니다. 마이크로 소프트는 어둠 속에서 개발자들을 지키기위한 난독 화 전술의 일부일 가능성이 있기 때문에 절대로 변경하지 않을 것이다. –

관련 문제