Azure에서 호스트 될 MVC 4 응용 프로그램을 개발 중이며 인증을 위해 ACS 서비스를 사용하려고합니다. 사용자가 인증되면 결과 내역을 사용하여 내 지역 기록과 연관시킵니다. 그 후, 신청서가 승인 결정을 위해 사용하는 로컬 인증을 나타내는 추가 클레임을 포함하도록 클레임 세트를 확장하고 싶습니다. 나는 Principle을 대체 할 필요가 있다고 가정하지만, MVC에서 이것을 어디에서/언제 할 것인지, 그리고 세션이 끝날 때까지 일반적으로 사용되는 인증 배관을 망가 뜨리지 않기를 원한다. 누구든지 이것에 대해 밝힐 수 있습니까?MVC 세션을위한 Azure ACS 클레임 확장
답변
, 당신이 단지에와 IClaimsPrincipal
에서 주장을 추가 및 제거 할 수 있음을 주목할 필요가 , 또는 자신의 고안에 대한 맞춤 문자열. ClaimTypes.Role
유형의 여러 클레임을 추가 할 수 있습니다. 다른 유형에 대해서는 확실하지 않습니다. ClaimsCollection
문서에서
:
은 하나의 주제와 관련된 클레임의 컬렉션을 나타냅니다.
ClaimCollection에 클레임을 추가하면 SetSubject 메서드를 호출하여 해당 클레임 을 컬렉션과 연결된 제목과 암시 적으로 연결합니다.
ClaimCollection에서 클레임을 제거하면 SetSubject 메서드를 호출하여이 연결을 암시 적으로 제거합니다.
http://msdn.microsoft.com/en-us/library/microsoft.identitymodel.claims.claimcollection.aspx
닷넷 4.5의 경우, 신원 클래스 및 청구를 업데이트하는 방법이 변경 업데이트뿐만 아니라 네임 스페이스 :
using System.IdentityModel;
using System.Security.Claims;
public static void UpdateClaims(Member member, ClaimsIdentity identity)
{
identity.RemoveClaim(identity.Claims.SingleOrDefault(x => x.Type == ClaimTypes.Name));
identity.RemoveClaim(identity.Claims.SingleOrDefault(x => x.Type == ClaimTypes.Email));
identity.AddClaim(new Claim(ClaimTypes.Name, "Steve Smith"));
identity.AddClaim(new Claim(ClaimTypes.Email, "[email protected]"));
}
UpdateClaims(User.Identity as ClaimsIdentity);
http://msdn.microsoft.com/en-us/library/system.security.claims.claimsidentity.aspx
ClaimSet에 농축을위한 WIF의 확장 점은 문서부터 ClaimsAuthenticationManager
입니다 :
주장 인증 매니저는 필터링하는 데 사용할 수있는 RP 처리 파이프 라인에 확장 점을 제공합니다 , 수정하거나 RP 신청서가 호출되기 전에 IClaimsPrincipal에 의해 제시된 클레임 집합에 새로운 클레임을 주입하십시오.
ACS에 규칙을 추가하여 필요한 소유권 주장으로 토큰을 풍부하게 만들 수도 있습니다.
public static void UpdateClaims(IClaimsIdentity identity)
{
identity.Claims.Remove(identity.Claims.SingleOrDefault(x => x.ClaimType == ClaimTypes.Name));
identity.Claims.Remove(identity.Claims.SingleOrDefault(x => x.ClaimType == ClaimTypes.Email));
identity.Claims.Add(new Claim(ClaimTypes.Name, "Steve Smith"));
identity.Claims.Add(new Claim(ClaimTypes.Email, "[email protected]"));
}
UpdateClaims(User.Identity as IClaimsIdentity);
주장이 ClaimTypes
에 열거 된 유형 중 하나가 될 수 있습니다 추가 :
- 1. PhoneGap 프로젝트의 Azure ACS
- 2. winrt의 azure acs 인증
- 3. Azure ACS 세션 수명
- 4. Azure ACS + 폼 값 저장
- 5. Azure ACS - 모범 사례 구현
- 6. Azure ACS - ClaimTypes.NameIdentifier 정보를 암호화해야합니까?
- 7. Windows에 로그인하는 방법 Azure ACS
- 8. Azure ACS + Custom STS, 하이브리드 시나리오 가능?
- 9. Azure ACS WIF는 MVC 클라이언트에서 원래 SSO 토큰에 액세스합니다.
- 10. 스마트 TV를 사용하는 Microsoft Azure ACS
- 11. Azure ACS with Silverlight 웹 사이트
- 12. PingIdentity STS가 포함 된 Windows Azure ACS
- 13. Windows Azure 역할 기반 인증 (ACS)
- 14. Windows Phone에서 Azure ACS 토큰 갱신
- 15. 클레임
- 16. iPhone의 ACS 관리 서비스
- 17. ACS 제휴 질문
- 18. ACS 인증을 사용하여 ASP.NET MVC 3 응용 프로그램로드 테스트
- 19. ACS - 유효한 사용자 관리 옵션
- 20. 푸른 ACS 초보자 접근
- 21. .Net MVC 앱의 단위 테스트 클레임
- 22. MVC 3에 클레임 기반 권한 추가
- 23. web.config를 편집하지 않고 ACS 클레임을받을 수 있습니까?
- 24. 터미널 세션을위한 레일 재시동
- 25. nHibernate 세션을위한 CommandTimeout 변경하기
- 26. Windows Azure ACS : 어셈블리 'Microsoft.IdentityModel "을 찾을 수 없습니다.
- 27. Azure ACS (HTTPS 및 다중 인스턴스 포함) 오류
- 28. ACS (Azure)를 사용하여 wcf 웹 서비스를 보호하는 방법
- 29. Windows Active Directory (2003)를 사용하는 Azure ACS
- 30. MVC4 Windows Azure ACS 500 내부 서버 오류 인증 양식