ASP.NET 웹 사이트에 outputcache를 추가하고 싶습니다. 그러나 사용자가 로그인했는지 여부에 따라 일부 단추와 내용을 변경하는 코드가 있습니다. 나는 그것을 사용하면 로그인 한 사용자의 코드로 페이지를 캐싱 할 수 있습니다. 이것이 작동하는 방식입니까, 아니면 세션과 함께 작동하도록 구성해야합니까?출력 페이지 및 세션 페이지 상태
답변
당신은 다음과 같은 변경을 수행해야합니다
이처럼 OutputCache
지침에 VaryByCustom
속성을 추가하고 사용자에게 값을 설정 : 다음
<%@ OutputCache VaryByCustom="User" .... %>
당신의 Global.asax에 파일에 필요한 이 같은 GetVaryByCustomString
메소드를 오버라이드 (override) 할 :에
public override string GetVaryByCustomString(HttpContext context, string custom)
{
if (custom.Equals("User", StringComparison.InvariantCultureIgnoreCase))
{
// Return the user name/login as a value that will invalidate cache per authenticated user.
return context.User.Identity.Name;
}
return base.GetVaryByCustomString(context, custom);
}
을 기반으로 이 anwser 아래의 의견, 당신은 세션 변수를 사용하여 사용자가 로그인 여부를 확인하는 말. 그렇게 인증을 관리하는 것이 우수 사례가 아니라고 말씀 드리겠습니다.
솔루션이 세션 값에 따라 캐시를 무효화 할 수있는 방법은이 일을한다 :
다시VaryByCustom
<%@ OutputCache VaryByCustom="Session" .... %>
당신이 그것을 string
정말 좋은 의미를 부여하여 원하는 string
값과 미래의 devs하도록 할 수 있습니다 또는 당신이 무엇을하고 있었는지 아는 것.
public override string GetVaryByCustomString(HttpContext context, string custom)
{
if (custom.Equals("Session", StringComparison.InvariantCultureIgnoreCase))
{
// make sure that the session value is convertible to string
return (string)context.Session["Here you put your session Id"];
}
return base.GetVaryByCustomString(context, custom);
}
우선합니다. 희망이 도움이됩니다.
설명해 주시겠습니까? '사용자'란 무엇입니까? 출력 캐시가 세션과 관련된 작업을 수행한다는 힌트가 있습니까? –
사용자는 캐시와 관련된 모든 문자열이 될 수 있습니다. 여기서 인증 된 사용자 당 캐시를 무효화해야합니다. 그런 다음 "User"(아무것도 될 수 있음) 문자열을 사용하여 캐시 매개 변수 VaryByCustom을 식별합니다. 이 값은 Global.axax의 오버라이드 메소드'GetVaryByCustomString'에 전달됩니다. 이 방법에서는 사용자에게 변경된 내용이 있는지 캐시에 알려줍니다. – CodeNotFound
로그인 한 사용자가 아닌 캐시 페이지를 제공하는 옵션이 있습니까? ASP.NET 로그인에서 빌드를 사용하지 않고 직접 구현했으며 사용자가 로그인했는지 여부를 확인하기 위해 세션 변수를 설정 했습니까? –
- 1. 클래식 ASP 페이지 및 세션 상태
- 2. 셰어 마스터 페이지 및 세션 상태
- 3. 세션 및 페이지 .IsPostBack
- 4. 세션 및 포함 된 페이지
- 5. ASP.NET 세션 및 페이지 수명주기
- 6. 페이지 사이에 상태 유지하기
- 7. 세션 변수가 다른 페이지
- 8. 세션 시간 초과 및 페이지 응답 시간
- 9. 페이지 상태 저장 mvc4
- 10. grail에서 페이지 뷰 상태 저장
- 11. Windows 런타임의 페이지 상태
- 12. WP7의 3 페이지 앱에 페이지 상태 저장
- 13. 레일이있는 상태 페이지
- 14. 메뉴 페이지 상태
- 15. PHP 페이지 세션 오류
- 16. 세션 데이터는 다른 페이지
- 17. Concrete5 페이지 매김 - 출력 페이지 수 제한
- 18. 이미지 저장 (페이지 상태)
- 19. 상태 설정 페이지 열기
- 20. 상태 ASP.net 마스터 페이지
- 21. 페이지 각도 상태 유지하기
- 22. 세션 변수가있는 페이지 액세스
- 23. 세션 변수는 페이지 사이
- 24. 세션 변수 페이지 사이
- 25. 설정 세션 페이지
- 26. 세션 로그인 페이지
- 27. PHP 세션 변수가없는 페이지
- 28. 세션 변수는 다른 페이지
- 29. php ajax 페이지 출력
- 30. ASP.net 페이지 출력 캐싱
어떤 기술을 ASP.Net WebForms 또는 ASP.Net MVC를 사용하고 있습니까? – CodeNotFound
@CodeNotFound 웹 양식 –