2011-09-25 3 views
3

저는 Azure ACS를 사용하고 있습니다. SAML 2.0 응답이나 이메일에서 이메일과 이름을 찾으러 왔습니다.Azure ACS에서 이메일과 이름을 얻는 방법은 무엇입니까?

그러나 나는 그것을 위해 어떤 옵션을 볼 해달라고, 나는 사용자가 localhost로 리디렉션 : 8000/ACC/completesigninup/

나는 FormCollection 개체에서 XML을 가지고, 내가 보는 XML에서 이메일과 이름 만 나는 그것을 얻는 방법을 모르겠다. 그 정보를 얻기 위해 Identity dll에 포함 된 파서가 있습니까?

답변

4

FormCollection에 대해 언급하고 있기 때문에 .NET으로 프로그래밍하는 것으로 가정합니다. 그러면 가장 쉬운 방법은 WIF (http://msdn.microsoft.com/en-us/security/aa570351)를 사용하는 것입니다.

이렇게하면 토큰을 구문 분석하고 유효성을 검사하고 사용자 ID를 설정 한 다음 토큰에서 정보를 나타내는 쿠키를 만들 필요가 없습니다.

WIF는 일단 설치하고 구성하면 (SDK에 Visual Studio 확장이 함께 제공됨) 자동으로 수행됩니다.

MVC와 함께 WIF를 사용하여 일부 샘플을 볼 수 있습니다. 하나 개의 샘플은 찾을 수 MVC3와 ACS이다에서 :

http://msdn.microsoft.com/en-us/library/hh127794.aspx

당신이 할 후에는 사용자의 ID에 액세스하고 클레임 값이 예 얻을 수있는 컨트롤러이 :

((IClaimsPrincipal)HttpContext.User).Identity.Claims.FirstOrDefault(c => c.ClaimType == ClaimTypes.Email) 

주를이 ACS의 Windows Live IDP는 Windows Live 개인 정보 보호 정책으로 인해 사용자의 전자 메일 주소를 클레임으로 제공하지 않습니다.

+0

내 웹 사이트 사용자는 대기열에 이미지를 추가하여 나중에 볼 수 있습니다. 이름을 이메일로 추출하고 싶습니다. 이메일은 데이터베이스의 고유 ID입니다. 이미 WIF를 사용하고 있었지만 이름과 이메일을 추출하는 옵션을 보지 못했습니다. –

+0

안녕하세요, J maj. 인증 된 사용자로부터 클레임 값을 제거하는 방법에 대한 답변을 업데이트했습니다. 또한 Windows Live는 엄격한 개인 정보 취급 방침을 갖고 있으며 어떠한 사용자 전자 메일이나 이름 클레임도 제공하지 않습니다. – Atacan

0

Atacan은 입니다.은 Windows Live에서 원하는 정보를 얻는 방법이지만 Google, Facebook 및 Yahoo 계정에 사용되는 방법과 다릅니다. JavaScript Windows Live API에는 사용자의 이름 (link)과 같은 정보를 얻을 수있는 기능이 포함되어 있습니다.

나는 이것을 시도하지 않았으므로 필요한 것이 무엇인지 알지 못한다. 그러나 그것이 당신이 찾고있는 것일 수도있다.