在nopcommerce3.3中获取当前客户

时间:2014-07-04 06:58:28

标签: nopcommerce

我正在使用mvc框架中的nopCommerce 3.3项目。我希望在WebStoreContext页面中获取当前客户ID。如何在nopCommerce 3.3中获得现有客户?

此致 Jatin

2 个答案:

答案 0 :(得分:0)

WorkContext.CurrentCustomer.Id

答案 1 :(得分:0)

您可能从其他问题When we inject IWorkContext in WebStoreContext its gives error中了解到,您无法从StoreContext引用IWorkContext,因为它会导致循环引用(您可以接受答案)。获取IAuthenticationService的实例可能有用,但具有相同的循环引用问题。

假设您不介意修改核心类,您应该考虑其中一种替代方法:

  • 使用其他方法从StoreContext获取当前用户:您无法使用IWorkContextIAuthenticationService,因此获取Forms.Identity为时尚早,因为第一个调用来自Application_BeginRequest。但是您可以从cookie中获取用户,例如,您可以从Nop.customer cookie获取客户GUID。您也不能使用CustomerSettingsICustomerService,因此您需要直接查询客户存储库以获取客户详细信息。

  • 但我最喜欢的是这个。向BasePublicController添加新过滤器,您可以查看WwwRequirement过滤器作为参考。在那里添加您需要的任何支票,并将消费者重定向到正确的商店并随意路线。