Windows Azure ACS로 보호되는 특정 영역이있는 ASP.NET MVC 사이트를 만들려고합니다. 기본 영역을 보호 해제 (익명 사용자 허용)하고 하위 영역 만 보호하려고합니다.세션 시작 후 ACS가 발생했습니다.
나는 Web.config의 system.web 섹션에서 인증 요소를 제거함으로써 이러한 일이 발생했습니다.
<authorization>
<deny users="?" />
</authorization>
그런 다음 원하는 MVC3 영역의 보호 된 위치를 추가하십시오.
<location path="MyArea">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
그러나, IClaimsIdentity에 액세스하고 내 Global.asax에의으로 session_start 이벤트에서 살았 처리를 위해 오프 특성을 추출하는 데 사용 내 예전의 코드. 사이트가 기본 영역에 액세스하기 위해 인증을 요구하지 않았으므로 인증없이 Session_Start가 발생합니다.
WIF의 인증 이벤트를 처리하기 위해 어떤 이벤트를 연결할 수 있습니까?
SessionAuthenticationModule_SessionSecurityTokenReceived를 사용하여 슬라이딩 세션 시간 초과를 구현했으며 OnPostAuthenticationRequest 이벤트에 내 사용자 분석 논리를 추가하지 않으려 고 시도했습니다. 이 이벤트에서,
FederatedAuthentication.WSFederationAuthenticationModule.SignedIn
그러나 :
FederatedAuthentication.ServiceConfigurationCreated
그런 다음이 이벤트에서 나는이 이벤트에 철사 :
나는 다음 이벤트까지, 제 1 배선 후 사용자를 얻을 수 있었다 세션은 null이며 session_start는 다시 호출되지 않습니다. 따라서 ID 공급자로 리다이렉트 할 때 세션이 부서져 버린 것처럼 보입니다. 곧
-> 위해 Application_Start은
곧 ->으로 session_start
이 곧 -> 이동에/MyArea
곧 -> ACS에 옴 -> IDP
익명으로 옴 ->에 옴 ->
인증 로그인/MyArea
auth -> FederatedAuthentication.WSFederationAuthenticationModule.SignedIn이 발생하지만 세션이 null입니다.
업데이트 : 세션과 인증이 모두 존재하는 장소를 아직 찾지 못했습니다. Unity를 사용하여 필요에 따라 사용자를 감지하고 있습니다. 그것이 일어날 때 그것을하는 사건이 있었다면 나는 그것을 좋아할 것입니다.하지만 그 주위의 일은 여전히 효과가 있습니다. 당신은 로그인 후 (로직을 실행하려는시기와 방법에 따라
[Authorize]
public ActionResult Index()
{
return View();
}
내 FederatedAuthentication 클래스에서 해당 이벤트가없는 것처럼 보입니다. .NET 4.5에서만 사용할 수 있습니까? – markti