2011-05-08 5 views
6

페이스 북 인증을 asp.net 사이트와 통합하려고합니다.Facebook 인증 및 Asp.Net 회원

사용자가 사이트에 등록하기로 결정한 경우 사용자는 Facebook 자격 증명을 사용하여 사이트에 등록 할 수 있습니다.

저는 페이스 북 액세스 토큰과 사용자 정보가 있으며 여기에서 어떻게해야하는지 잘 모릅니다.

사이트는 asp.net 회원 인증을 사용합니다. 사이트를 (그러나 확실하지 이것을 길을 갈 경우)

0) 사용자 방문 및 자신의 페이스 북 자격 증명을 사용하여 등록 결정 :

내가 새로운 사용자 등록하기로 결정하는 경우에 발생한다고 생각 것입니다 .
1) 사용자가 사용자의 자격 증명을 제공하고 액세스 토큰과 사용자 정보를받습니다.
2)이 정보를 데이터베이스에 저장하고받은 데이터로 asp.net 회원 사용자를 만듭니다. (이 시점에서 암호를 생성해야합니다.)
3) 자유롭게 탐색 할 수 있도록 사용자를 사이트에 로그인하십시오.

올바른 경로에 있고 암호를 생성하는 방법에 대해 알고 싶습니다. (나는 어쩌면 이메일과 페이스 북의 사용자 ID 결합에서 생각하고, 해시 및 저장소를 검색 할 수 있습니다.) 그들이 사용하는 것이 좋습니다

감사

내가 this SO 질문을 발견 한
UPDATE :

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.setauthcookie(v=VS.90).aspx

답변

4

나는 접근하는 것이 좋다고 생각합니다. 당신이 실제로하는 일은받은 페이스 북 ID로 사용자 이름/패스워드 인증을 대체하고, 그 아이디를 당신의 어플리케이션에서 유효한 식별자로 전달하도록하는 것입니다.

당신은 내가 확실히 알고있는 응용 프로그램에서 암호를 생성해야한다고 말합니다. ASP.NET의 멤버 자격 공급자와 관련하여 암호를 사용하여 사용자를 만들어야하지만 사실 만 사용자가 페이스 북 연결을 사용하여 로그인하도록하려면 임의의 문자열을 채울 수 있습니다.

바인딩 할 Facebook 속성을 결정할 때 약간의주의가 필요할 것입니다. 자연스러운 선택은 물론 페이스 북 식별자이기 때문에 사용자에게는 그럴 수 없지만 나중에 다른 인증 메커니즘을 허용하도록 선택하면 페이스 북 등에서 이메일을 저장할 수 있습니다.

아마도 페이스 북에서 정의되지 않은 응용 프로그램에서 자동으로 사용자 이름을 생성하는 것도 좋은 생각입니다. 페이 스북 식별자를 로그인 이름으로 선택하면 페이스 북에 대한 의존도가 높아 지므로 새로운 아이덴터티 제공자를 쉽게 도입 할 수 없습니다. 임의의 식별자와 페이스 북 ID와 ID 사이의 연결을 설정하는 연관 테이블을 선택하면 나중에 유연성을 얻을 수 있습니다. LoginStatus 등의 ASP.NET 로그인 컨트롤에서 의미있는 결과를 얻으려면 다소 제한적인 전자 메일 주소를 선택하는 것이 좋습니다.

2

아래의 응답을 읽지 않았으므로 IE의 iframe 내에서 쿠키가 설정되지 않은 상태에서 심각한 문제가 있음을 경고해야합니다. 그것은 피 묻은 악몽이었다. 이 문제가 고칠 수 있다면 고칠 수 있을지 모르겠지만, 단지 내 경험을 완전히 숙지하고 완전히 브라우저에서 테스트하십시오.

.net open auth 프로젝트도 확인하십시오. 나는 그것을 개인적으로 사용하지 않았지만 OAuth와 OpenId & ICards를 지원할 예정이며, 이는 나중에 통합 지점을 추가하는 데 도움이 될 수 있습니다.