저는 ASP .NET 회원 데이터베이스를 사용하여 웹 응용 프로그램의 사용자를 인증하고 있습니다.Membership.FindUsersByEmail - SQL 와일드 카드
사용자는 이메일 주소를 사용하여 로그인하지만 다른 것은 데이터베이스의 사용자 이름 필드에 사용됩니다.
그래서 로그인 폼에, 나는 문제는이 기능을 사용한다는 것입니다Membership.FindUsersByEmail
를 사용하여 내 사용자를 페치 'LIKE'SQL과 그 SQL 와일드 카드가 그 방법에서 탈출하지 않습니다.
예를 들어, [email protected]의 메소드를 사용하면 [email protected]과 [email protected]에 대한 사용자 이름이 반환됩니다 (밑줄 문자가 와일드 카드로 처리되기 때문에).
위키에 따르면 따옴표, % 및 다른 문자가 전자 메일 주소에 허용됩니다. 내가 Membership.FindUsersByEmail를 호출하기 전에
emailAddr = emailAddr.Replace("_", "[_]").Replace("%", "[%]")...
같은 일을 할 수 있지만
, 나는이 작업을 수행 할 수있는 청소기 방법이있을 것으로 생각하고있다.
왜 LIKE 문을 사용하고 있습니까? 사용자가 자신의 이메일 주소를 어떻게 입력했는지 알지 못합니까? 실수로 GMAIL에 갔다가 '[email protected]'을 입력 한 적이 없습니다. (또는 더 정확하게 :. [난처하게] @ gmail.co). – AllenG
나는 같은 성명을 사용하는 사람이 아니다. System.Web.Security.Membership.FindUsersByEmail입니다. 여기를 참고하십시오 http://msdn.microsoft.com/en-us/library/b2ec0bts.aspx –