src/ZKEACMS/Filter/WidgetAttribute.cs
(开头部分) 10KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
/* http://www.zkea.net/
* Copyright (c) ZKEASOFT. All rights reserved.
* http://www.zkea.net/licenses */
using Easy.Extend;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ActionConstraints;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Net.Http.Headers;
using System;
using System.Linq;
using ZKEACMS.Event;
using ZKEACMS.Layout;
using ZKEACMS.Page;
using ZKEACMS.Rule;
using ZKEACMS.Setting;
using ZKEACMS.Theme;
using ZKEACMS.Widget;
using ZKEACMS;
using System.IO;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Logging;
namespace ZKEACMS.Filter
{
public class WidgetAttribute : ActionFilterAttribute, IActionFilter, IActionConstraint
{
private const string UnknownZone = "UnknownZone";
public virtual PageEntity GetPage(ActionExecutedContext filterContext)
{
string path = filterContext.RouteData.GetPath();
bool isPreView = IsPreView(filterContext);
using (var pageService = filterContext.HttpContext.RequestServices.GetService<IPageService>())
{
//if (!filterContext.HttpContext.User.Identity.IsAuthenticated && !isPreView && GetPageViewMode() == PageViewMode.Publish)
//{
// filterContext.HttpContext.Response.GetTypedHeaders().CacheControl = new CacheControlHeaderValue()
// {
// Public = true,
// MaxAge = TimeSpan.FromHours(1)
// };
// //filterContext.HttpContext.Response.Headers[HeaderNames.Vary] = new string[] { "Accept-Encoding" };
//}
if (isPreView)
{
filterContext.HttpContext.Response.GetTypedHeaders().CacheControl = new CacheControlHeaderValue()
{
NoCache = true,
NoStore = true
};
}
return pageService.GetByPath(path, isPreView);
}
}
private bool IsPreView(FilterContext filterContext)
{
bool isPreView = false;
后面还有 178 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。