我想使用核心服务删除组件的先前版本,只保留最新版本.我怎样才能做到这一点?
我试图冒充Tridion 2011 SP1 HR1中的核心服务,我收到此错误:
无法处理该消息,因为操作"http://www.sdltridion.com/ContentManager/CoreService/2011/ISessionAwareCoreService/Impersonate"无效或无法识别.
为什么会这样?我必须盲目不明白为什么它不起作用......
关于服务器:Tridion 2011 SP1 HR1的新安装
我的代码看起来像这样:
client = Client.GetCoreService();
if (string.IsNullOrEmpty(username)) username = HttpContext.Current.User.Identity.Name;
client.Impersonate(username);
Run Code Online (Sandbox Code Playgroud)
这是GetCoreService方法:
public static SessionAwareCoreServiceClient GetCoreService()
{
AppSettingsReader reader = new AppSettingsReader();
string coreServiceUrl = (string)reader.GetValue("CoreServiceEndPoint", typeof(string));
int dataSize = (int)reader.GetValue("DataSize", typeof(int));
var quotas = new System.Xml.XmlDictionaryReaderQuotas
{
MaxStringContentLength = dataSize,
MaxArrayLength = dataSize,
MaxBytesPerRead = dataSize
};
var httpBinding = new WSHttpBinding
{
MaxReceivedMessageSize = 10485760,
ReaderQuotas = quotas,
Security = { Mode = SecurityMode.Message, Transport = { ClientCredentialType = …Run Code Online (Sandbox Code Playgroud) 如何检索当前登录用户的TCM URI到Tridion?
我正在开发Tridion 2011上的GUI扩展,需要检查一个Component是否已经签出给当前登录的用户.我计划比较当前登录用户的TCM URI component.getLockedById().
我很确定在查看Tridion的JavaScript文件时,我看到了如何在某处检索当前登录用户的用户名.
编辑
我发现了一种至少检索用户名的方法:
var username = Tridion.ContentManager.UserSettings.getInstance().getUserName();
Run Code Online (Sandbox Code Playgroud) 如何在给定具有核心服务的结构组TCM URI的情况下获取所有子结构组?
我尝试使用此代码:
ItemsFilterData sgFilter = new RepositoryItemsFilterData
{ ItemTypes = new[] { ItemType.StructureGroup },
Recursive = true,
BaseColumns = ListBaseColumns.Id };
XElement listXml;
using (CoreServiceClient client = _coreServiceProvider.GetCoreServiceClient())
{
listXml = XElement.Parse(
client.ProxyClient.GetListXml(structureGroupUri, sgFilter)
.OuterXml);
}
Run Code Online (Sandbox Code Playgroud)
但是我收到一条错误,上面写着"意外的项目类型:StructureGroup".
我正在开发一个Web应用程序,它将作为Tridion中的自定义页面添加.
在自定义页面上,我想选择模式X的一个组件.我想使用ItemSelectControl用于此目的,但我不知道如何从我的自定义页面打开该控件,因为我无法访问任何Tridions javascript命名空间(例如$ model或$ const).我可以简单地用ItemSelectControl的url打开一个新的弹出窗口并在json中创建我自己的过滤器,但我宁愿使用Tridions javascript命名空间中定义的常量.
是否有一种简单的方法可以向我的Web应用程序添加引用或某些内容以访问Tridions javascript命名空间?如果没有,你有什么建议我应该如何解决这个问题?
有关自定义页面的更多信息:
CMS服务器主机名:testcms
一个空的ASP.NET项目,其中一个名为Test.aspx的aspx页面发布到路径C:\ TestPage \
在IIS中,SDL Tridion站点中名为TestPage的Web应用程序,其路径为C:\ TestPage \
尝试使用url访问broswer中的页面:http://testcms/TestPage/Test.aspx