Sitecore 7.5 |使用虚拟用户登录

时间:2015-06-12 11:49:31

标签: sitecore virtual

我试图在Sitecore中实施虚拟用户,并做了一个小POC来了解虚拟用户的工作方式。

我尝试将网址浏览为

http://somesite/sitecore/shell/sitecore/content/Applications/Content%20Editor.aspx?id=%7b110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9%7d&la=en&fo=%7b110D559F-DEA5-42EA-9C1C-

8A5DF7E70EF9%7D&安培;登录=真

在HttpRequestBegin UserResolver之后的管道中,我有下面的处理器代码为:

System.Web.HttpRequest Request = HttpContext.Current.Request;

       if (Request.QueryString["Log"] != null && Request.QueryString["Log"].ToString() == "true")
        {
            //Build Virtual user if the Sitecore User is not authenticated
            if (!user.IsAuthenticated)
            {
                try
                {
                    //Build a testuser in sitecore domain
                    string userId = string.Format("{0}\\{1}", "extranet", "testadmin");
                    var scUser = AuthenticationManager.BuildVirtualUser(userId, true);
                    scUser.Profile.Initialize(userId, true);
                    scUser.Profile.Save();

                    scUser.RuntimeSettings.IsAdministrator = true;
                    scUser.RuntimeSettings.AddedRoles.Add(@"sitecore\Sitecore Client Authoring");
                    AuthenticationManager.Login(scUser);

                }
                catch (Exception ex)
                {
                    Log.Error(ex.Message, this);
                }

                return;
            }
        }

这里我正在构建一个虚拟用户并尝试以此虚拟用户身份登录。但此处不是登录,而是始终将我重定向到http://somesite/sitecore/login?id=%7b110D559F-

的登录页面

DEA5-42EA-9C1C-8A5DF7E70EF9%7D&安培; LA = EN&安培; FO =%7b110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9%7D&安培;登录=真

但是当我尝试在下面的自定义页面的帮助下实现相同的目标时

我刚创建了一个自定义页面Something.aspx,代码如下:

 protected void Page_Load(object sender, EventArgs e)
        {

            string url = "/sitecore/shell/sitecore/content/Applications/Content Editor.aspx?id=%7b110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9%7d&la=en&fo=%7b110D559F-DEA5-42EA-9C1C-

8A5DF7E70EF9%7d&Log=true";
            url = string.IsNullOrEmpty(url) ? "/" : url;
            HttpContext.Current.Response.Redirect(url, false);

        }

这里我什么也没做,只是重定向到内容编辑器,当我浏览http://somesite/Something.aspx时,我能够使用我创建的testadmin用户登录内容编辑器吗?。任何人都可以告诉

我为什么会这样?

在我浏览网站{/ 3}}的方法中 在用户解析器中,解析的用户将是extranet \ Anonymous,然后点击Something.aspx的PageLoad并且没有点击我的自定义处理器(我通过不传递Log = true来控制它,并且仅在页面加载中传递此Log = true .aspx)和重定向,UserResolver中的用户是sitecore \ Anonymous,然后它命中我的自定义处理器并创建虚拟用户和shell网站将不会重定向到登录站点而是打开内容编辑器。 sitecore \ Anonymous - 重定向,然后以虚拟用户身份登录

在我直接浏览内容编辑器的方法中,最初用户解析将是sitecore \ Anonymous然后它命中我的自定义处理器并创建虚拟用户并且shell站点将重定向到登录站点。

任何想法为什么会这样?

0 个答案:

没有答案