Glimpse安全策略失败,因为glimpse.axd的请求不会显示当前用户

时间:2015-12-10 19:29:15

标签: c# asp.net sitecore glimpse

我在Sitecore 8.1环境中遇到Glimpse安装问题。我试图创建一个简单的Glimpse安全策略,该策略将检查当前用户是否是Sitecore管理员。

        if (!Sitecore.Context.User.IsAdministrator)
        {
            return RuntimePolicy.Off;
        }

这在功能上与Glimpse通过NuGet提供的示例代码中给出的示例相同,即

        var httpContext = policyContext.GetHttpContext();
        if (!httpContext.User.IsInRole("Administrator"))
        {
            return RuntimePolicy.Off;
        }

问题是当这个代码被命中,并且请求被定向到glimpse.axd时,用户总是被重置为extranet \ Anonymous。当没有匿名用户时,Sitecore始终设置匿名用户。任何不是glimpse处理程序的请求都会通过检查并设置RuntimePolicy.On。

我在web.config中有以下内容

<modules runAllManagedModulesForAllRequests="true">
  <remove name="WebDAVModule"/>
  <add type="Sitecore.Web.RewriteModule, Sitecore.Kernel" name="SitecoreRewriteModule"/>
  <add name="Glimpse" type="Glimpse.AspNet.HttpModule, Glimpse.AspNet" preCondition="integratedMode"/>
  <add type="Sitecore.Nexus.Web.HttpModule,Sitecore.Nexus" name="SitecoreHttpModule"/>
  <add type="Sitecore.Resources.Media.UploadWatcher, Sitecore.Kernel" name="SitecoreUploadWatcher"/>
  <add type="Sitecore.IO.XslWatcher, Sitecore.Kernel" name="SitecoreXslWatcher"/>
  <add type="Sitecore.IO.LayoutWatcher, Sitecore.Kernel" name="SitecoreLayoutWatcher"/>
  <add type="Sitecore.Configuration.ConfigWatcher, Sitecore.Kernel" name="SitecoreConfigWatcher"/>
  <remove name="Session"/>
  <add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition=""/>
  <add type="Sitecore.Analytics.RobotDetection.Media.MediaRequestSessionModule, Sitecore.Analytics.RobotDetection" name="MediaRequestSessionModule"/>
  <add type="Sitecore.Web.HttpModule,Sitecore.Kernel" name="SitecoreHttpModuleExtensions"/>
  <add name="SitecoreAntiCSRF" type="Sitecore.Security.AntiCsrf.SitecoreAntiCsrfModule, Sitecore.Security.AntiCsrf"/>
</modules>

问题是,为什么针对/glimpse.axd的请求不会传递与对网站其余部分的请求相同的身份验证Cookie?

0 个答案:

没有答案