DotNetNuke GetCurrentUserInfo适用于超级用户,但不适用于普通用户

时间:2013-06-24 14:27:47

标签: .net dotnetnuke

我有一个Web服务,我在其中返回一些用户详细信息。我不得不查看UserController.GetCurrentUserInfo()的来源并将其复制到我自己的东西,稍作修改,以解决DNN中的webservice / auth问题。当我以主超级用户身份登录时,我可以正确填充UserInfo对象,并且我的所有数据都会将其恢复。当我以普通用户身份登录时,我得到一个空对象。

为了测试,在一些实际的模块代码中,我尝试了“真实的”UserController.GetCurrentUserInfo(),只是抓住了一个字符串直接插入到页面中, 对所有用户类型都有效

我的网络服务在所有用户类型的本地DNN安装上成功运行。当我在共享开发环境中安装时,我开始遇到这种奇怪的行为。有任何想法吗?我希望这只是我在共享开发模块中安装的方式,但我没有看到我出错的地方。

1 个答案:

答案 0 :(得分:1)

您是否在共享环境中的子门户网站上运行?您可能需要将portalId添加到查询字符串,以便DNN知道您正在请求哪个门户​​网站(这就是它与超级用户合作的原因,因为他们已经拥有一个帐户,即使已识别门户网站不正确地)。

您是否考虑过使用DNN Services Framework来实施服务,而不必在使用自己的服务时解决这些问题?