我正在使用mvc框架中的nopCommerce 3.3项目。我希望在WebStoreContext页面中获取当前客户ID。如何在nopCommerce 3.3中获得现有客户?
此致 Jatin
答案 0 :(得分:0)
WorkContext.CurrentCustomer.Id
答案 1 :(得分:0)
您可能从其他问题When we inject IWorkContext in WebStoreContext its gives error中了解到,您无法从StoreContext引用IWorkContext,因为它会导致循环引用(您可以接受答案)。获取IAuthenticationService的实例可能有用,但具有相同的循环引用问题。
假设您不介意修改核心类,您应该考虑其中一种替代方法:
使用其他方法从StoreContext
获取当前用户:您无法使用IWorkContext
,IAuthenticationService
,因此获取Forms.Identity为时尚早,因为第一个调用来自Application_BeginRequest。但是您可以从cookie中获取用户,例如,您可以从Nop.customer cookie获取客户GUID。您也不能使用CustomerSettings
或ICustomerService
,因此您需要直接查询客户存储库以获取客户详细信息。
但我最喜欢的是这个。向BasePublicController
添加新过滤器,您可以查看WwwRequirement
过滤器作为参考。在那里添加您需要的任何支票,并将消费者重定向到正确的商店并随意路线。