我正在尝试使用以下内容编辑器创建虚拟用户并重定向到内容编辑器。
string userId = string.Format("{0}\\{1}", "sitecore", "testadmin");
var scUser = AuthenticationManager.BuildVirtualUser(userId, true);
scUser.RuntimeSettings.IsAdministrator = true;
scUser.RuntimeSettings.AddedRoles.Add(@"sitecore\Sitecore Client Authoring");
AuthenticationManager.Login(scUser);
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";
url = string.IsNullOrEmpty(url) ? "/" : url;
HttpContext.Current.Response.Redirect(url, false);
但它总是将用户重定向到sitecore / login页面。
知道这里有什么问题吗?
答案 0 :(得分:0)
有趣。我不完全确定该方法是受支持的方案。但是,内容编辑器会运行" shell"网站,可能这是你的问题。
尝试将此代码放在整个代码块中。
using(new SiteContextSwitcher("shell")) {
}
答案 1 :(得分:0)
您需要更改:
AuthenticationManager.Login(scUser);
到
AuthenticationManager.LoginVirtualUser(scUser);