我有这个与Tracker有关的问题.
[InvalidOperationException: Tracker.Current is not initialized]
Sitecore.Analytics.Pipelines.StartAnalytics.StartTracking.Process(PipelineArgs args) +304
(Object , Object[] ) +74
Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +484
Sitecore.Analytics.Pipelines.StartAnalytics.StartAnalyticsPipeline.Run() +293
Sitecore.Mvc.Analytics.Pipelines.MvcEvents.RequestBegin.StartTracking.Process(RequestBeginArgs args) +139
(Object , Object[] ) +74
Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +484
Sitecore.Mvc.Pipelines.PipelineService.RunPipeline(String pipelineName, TArgs args) +184
Sitecore.Mvc.Routing.RouteHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +74
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +923
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +157
Run Code Online (Sandbox Code Playgroud)
在web.config我是
enableTracking = "真"
如果我设置为false它可以工作,但没有跟踪
我需要从外部服务验证用户凭据,因此我正在使用VirtualUser身份验证.
BuildVirtualUser,检查要设置给他的角色,保存用户配置文件,然后使用该名称登录.我遇到了一个问题,即每天登录,使用相同的凭据,Sitecore会在体验资料中创建一个新用户.
我需要在代码中更改以确保通过虚拟用户登录,Sitecore获取用户的旧体验配置文件?
我正在考虑使用相同的通用密码在sitecore中创建用户.而不是使用虚拟用户,并直接与sitecore进行身份验证.那是对的吗?
这是我的代码:
Sitecore.Security.Accounts.User user = Sitecore.Security.Authentication.AuthenticationManager.BuildVirtualUser(sitecoreUser, true);
string roleName = @"newRole\User";
Sitecore.Security.Accounts.Role demoRole = Sitecore.Security.Accounts.Role.FromName(roleName);
if (Sitecore.Security.Accounts.Role.Exists(roleName) && !demoRole.IsMember(user, true, false))
{
user.Roles.Add(Sitecore.Security.Accounts.Role.FromName(roleName));
}
user.Profile.Name = name;
user.Profile.Email = email;
user.Profile.FullName = fullname;
user.Profile.Save();
Sitecore.Security.Authentication.AuthenticationManager.Login(user.Name);
Tracker.Initialize();
Run Code Online (Sandbox Code Playgroud)