2011-09-14 3 views
2

저는 ASP.NET 4.0 C# 프로젝트를 만들고 있습니다. CreateUserWizard는 잘 작동하지만, 내가 만든 로그인 컨트롤은 항상이 메시지를 보여주고있다 :내 ASP.NET 4 로그인이 작동을 멈췄습니다 ... 왜?

Your login attempt was not successful. Please try again. 

이 내가 실험의 machine.config에서 회원 및 연결 문자열 설정을 변경 한 후 나중에 기본값으로 변경하는 일이 시작 예 : 여기에 회원 섹션

<connectionStrings> 
    <add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

그리고 :

다음

연결 문자열 설정입니다
<membership> 
    <providers> 
     <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/> 
</providers> 
</membership> 

또한, 나는 성공적으로 CreateUserWizard1을 완료하고 리디렉션

SqlConnection con = new SqlConnection("data source=.\\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"); 
SqlCommand cmd = new SqlCommand(); 

경우에도 페이지의 뒤에 모든 코드에서 두 줄을 작성하여 기본 데이터가 ASPNEDB.mdf 즉 컨트롤을 로그인 내 웹 사이트 데이터를 저장하는 내 기본 데이터베이스를 변경 한 내 homepage.aspx, 어디 asp.net LoginName의 기본 레이블을 사용, 레이블이 비어있는 표시됩니다.

수동으로 Label1을 입력하고 Label1.Text = HttpContext.Current.User.Identity.Name;을 입력해도 여전히 작동하지 않습니다.

도와주세요. 나는이 프로젝트를 내 대학에 보여줘야 만한다. 그러나 나의 팀은 나의 EXPERIMENT 때문에 실패 할 것이다. 몇 가지 잠재적 인 문제는 여기에있다

+0

제가이 문제를 이해한다면, 당신은 주로 ***이 작동 할 때 되돌아 가려고합니다. 내가 소스 제어를 사용하고 있지 않다고 가정합니다. 맞습니까? – jadarnel27

+0

@ jadamel27 : 14 개의 질문 중 9 개를 수락했는데 그리 나쁘지 않습니다. OP는 여전히 답을 기다리고있는 뛰어난 questons를 가질 수 있습니다. –

+0

@ jadamel27 죄송합니다, AActually 나는 받아 들여지지 않은 답변에 만족하지 못합니다. –

답변

2

있습니다

  1. 은 당신의 Web.config의 machinekey을 변경했습니다. 그렇다면 변경하십시오. 다시 변경할 수 없으면 테이블의 모든 사용자를 삭제하고 다시 만드십시오. 비교를 위해 입력 된 암호를 해시 키로 처리해야하는 단방향 해시 알고리즘을 사용하고 있습니다.

  2. 연결 문자열을 변경했습니다. 데이터베이스에 해당 사용자 레코드가 있다고 확신합니까? 다음으로 데이터베이스 삭제/재 작성을 수행 했습니까? 그렇다면 해당 사용자는 없어집니다. # 1 참조.

요점은 분명히 모든 것을 되돌려 놓지 않은 것입니다.

그럼 왜 로그인에 실패 했습니까? 가능한 옵션은 다음과 같습니다.

  1. 액세스중인 데이터베이스는 사용자가 생각하는 것이 아닙니다.
  2. 사용자가 실제로보고있는 데이터베이스에 존재하지 않습니다.
  3. 사용자가 있지만 사용자가 제공 한 암호가 올바르지 않습니다.
  4. 사용자가 존재하고 암호는 정확하지만 컴퓨터 키가 변경되어 시스템에서 올바르게 해싱 할 수 없습니다.

기본적으로 데이터베이스를 삭제하고 사용자를 다시 추가 할 때입니다.

+0

Chris 님 ... 고맙습니다. –

+0

+1에 대한 +1 연결 문자열, 내 경우에는 환경 사이에 잘못된 데이터베이스 이름을 사용하고 : / –

관련 문제