如何使用WFFM从表单中获取站点上下文?

时间:2014-01-02 13:07:42

标签: c# forms web-services sitecore web-forms-for-marketers

我在多语言环境中使用Sitecore Webforms For Marketers(例如.com,.be,.nl en .de)。有3台服务器:2台内容交付服务器(CDS)和1台内容管理服务器(CMS)。在CDS服务器上不可能写入数据,所以我已经配置了一个Web服务来将表单数据从CDS转发到CMS服务器。

我的问题是Web服务与.com域通信。通过使用.com domein进行Web服务通信,CMS无法知道提交域的站点上下文是什么。例如,用户在.nl域上提交表单,CMS服务器认为它来自.com域。

有谁知道如何从提交中获取网站上下文(例如NL-nl)?

非常感谢!

的Jordy

3 个答案:

答案 0 :(得分:3)

类似问题被问到here并由@TwentyGotoTen回答。您需要获取当前站点的位置与链接问题不同,但答案是相同的。使用Sitecore使用的代码来解析网站:

var url = System.Web.HttpContext.Current.Request.Url; 
var siteContext = Sitecore.Sites.SiteContextFactory.GetSiteContext(url.Host, url.PathAndQuery);

可以在文章@MarkUrsino中找到解析网站的代码的扩展版本(由Sitecore Context Site Resolution在同一问题中链接)。

您是否可以为每个Web服务调用使用正确的域名?如果您只需使用.com域名来调用网络服务,也许您可​​以尝试检查UrlReferrer而非当前请求Url主机?

答案 1 :(得分:0)

更新您的Web服务以传递主机名的额外参数(通过CD客户端),然后在服务上(在您的CM上)从中获取上下文站点。

答案 2 :(得分:0)

我为每个域创建了自定义保存操作。这解决了这个问题。

相关问题