2010-04-16 1 views
0

ASP.NET 2.0 로그인 컨트롤에 문제가 있습니다.ASP.NET 로그인 컨트롤이 존재하는 사용자를 거부합니다

  • aspI.net regsql 도구를 사용하여 데이터베이스를 설정했습니다.
  • 응용 프로그램 이름을 확인했습니다. "/"로 설정됩니다.

응용 프로그램이 SQL Server에 액세스 할 수 있습니다. 사실, 내가 비밀 번호를 검색 갈 때, 심지어 나에게 비밀 번호를 보내드립니다. 그럼에도 불구하고 로그인 컨트롤은 계속해서 로그인을 거부합니다.

은 내가 web.config이 추가 :

<membership defaultProvider="AspNetSqlProvider"> 
    <providers> 
    <clear/> 
    <add name="AspNetSqlProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
    </providers> 

그리고 나는 내 연결 문자열에 다음을 추가 :

<remove name="LocalSqlServer" /> 
    <add name="LocalSqlServer" connectionString="Data Source=IDC-4\EXCALIBUR;Initial Catalog=allied_nr;Integrated Security=True;Asynchronous Processing=True"/> 

(이하 "제거 이름"을 참고하는 기본 연결 없애을 문자열).

로그인 컨트롤이 사용자를 인증하지 않는 이유는 무엇입니까?

+0

web.config의 해당 섹션을 표시 할 수 있습니까? – jim

+0

DB를 잠궈 계정이 잠겨 있거나 승인되었는지 확인 했습니까? ? – Zachary

답변

1

암호를 일반 텍스트로 저장하는 것처럼 들리지만 SqlMembershipProvider의 기본 암호 저장 형식은 "해시"입니다. 해시로 저장된 사용자의 암호는 데이터베이스에서 검색 할 수 없습니다.

+0

비밀번호를 일반 텍스트로 저장한다고 생각하는 이유 도구를 ASP.NET 멤버 자격 스키마를 만듭니다. 스키마에 기본 저장소 메서드를 만들지 않습니까? 관리 도구에서 현재 사용자를 생성하고 있습니다. 기본 접근 방식을 사용하겠습니까? 아니요. – rsteckly

+0

귀하의 성명서로 인해 "비밀번호를 알아 내려고 할 때 비밀번호를 알려주기도합니다." 해시는 단방향이므로 해시 형식으로 저장하는 경우 검색 할 수 없으며 사용자 항목 만 확인합니다. – cortijon

0

Memevership Provider에 관한 훌륭한 기사 모음은 4 Guys From Rolla 사이트에 작성되었습니다. 그것이 도움이 될 것 같아, 그것을 밖으로 검사해라!

http://www.4guysfromrolla.com/articles/120705-1.aspx

시리즈의 제 4 부에서 :

"회원 시스템에서 사용자의 자격 증명이 잘못 될 수있는 여러 시나리오가 :

  • 제공되는 사용자 이름은 그렇지 않을 수 있습니다 회원 디렉토리에 존재
  • 사용자 이름이있을 수 있지만 제공된 비밀번호가 틀릴 수도 있습니다.
  • 사용자 이름과 암호가 정확하지만, 수
    • 사용자 아직 사용자가 잠길 수 있습니다
    • 을 승인하지 않을 수 있습니다; 사용자가 시도의 지정된 번호에 대한 잘못된 암호로 로그인을 시도하면이
불행하게도

에서, ValidateUser (사용자 이름, 암호) 방법은 바로 자격 증명의 경우 False를 반환 (오 기본적으로) 일어날 수있다 정확하지 않은 이유에 대한 정보가 포함되어 있지 않습니다. "