我正在尝试开发一个自定义页面,其中,我正在尝试获取特定出版物中存在的所有组件的列表。
在aspx页面的页面加载中,我需要获取当前登录用户的 session 。
当我尝试使用代码时
Session currSession = new Session();
Response.Write(currSession.User.Id);
我收到以下错误。
Access is denied for the user NT AUTHORITY\NETWORK SERVICE
当我尝试使用代码时
Session currSession = new Session(WindowsIdentity.GetCurrent());
Response.Write(currSession.User.Id);
我收到以下错误。
The name 'WindowsIdentity' does not exist in the current context
1.) 在自定义页面中获取 session 的正确方法应该是什么?
我们可以使用 HttpContext.Current.Request.ServerVariables.Get("REMOTE_USER") 来获取用户。
2.) 自定义页面是否应该使用 CoreServices 或 TOM.NET API 从 CM 获取信息。哪个是首选。
最佳答案
您不能将 TOM.NET API 用于除模板和事件系统之外的进程。请为此使用核心服务 API(在那里您不需要 session )。
我可能会将其改写为:你 不应该将 TOM.NET API 用于除模板和事件系统之外的进程。从技术上讲这是可能的,但不应该那样使用,这就是核心服务的引入目的。
关于tridion - 获取当前登录用户的 session - 自定义页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11431760/