访问DotNetNuke中asmx Web服务文件中的ModuleID和PortalID
本文关键字:ModuleID 文件 PortalID 服务 DotNetNuke asmx Web 访问 | 更新日期: 2023-09-27 18:22:33
我的DotNetNuke模块中有一个asmx Web服务文件。如何访问此asmx文件中的PortalID和ModuleID。当我尝试在代码behinde.ascx.cs文件中运行良好的代码时,它返回portalID=0,ModuleID=1
private Components.Setting _ModuleSettings;
_ModuleSettings = new Components.Setting(PortalId, ModuleId);
编辑以下内容仍然正确,但是DNN 6.2的发布包含了专门用于在DNN中构建web服务的服务框架。服务框架是一个比推出自己的基于.asmx的服务更好的解决方案。
/EDIT
由于您执行的是web服务调用,而不是DNN模块,因此不会为您提供上下文。但是,您可以自己重新创建它。获取当前门户设置
var domainName = Globals.GetDomainName(request);
var alias = PortalAliasController.GetPortalAliasInfo(domainName);
return new PortalSettings(-1, alias);
由于您并没有真正处于页面的上下文中,ActiveTab将回退到默认值(除非您可以将-1替换为活动tabId)。
要获得模块上下文,您需要将moduleId和tabId传递给您的服务,然后调用:
var module = new ModuleController().GetModule(moduleId, tabId)
模块设置要求您处于模块的上下文中。.asmx服务不会有那种级别的上下文。