2017-02-09 125 views
0

我们已将DNN 7.1.2专业版升级到DNN 9.0.1。升级进行顺利,没有任何错误。但是,访问升级后的网站时,没有任何模块正在加载页面。同时我想强调正确的皮肤菜单等被加载。调试了很多后,我可以通过名称DotNetNuke.Profession.dll找到他在dll中的问题。这个dll有一个名为GranularPermissionProvider的类,它根据当前的用户权限检查模块是否需要显示在页面上。罪魁祸首码似乎是以下:从DNN 7.1.2升级到DNN 9.0.1后DNN页面缺少模块

GranularPermissionProvider.cs

//代码在DotNetNuke.Professional

public override bool CanViewModule(ModuleInfo module) 
{ 
    if (!this.Application.HasActiveLicenseOrIsTrial) 
    return base.CanViewModule(module); 
    if (!PortalSecurity.IsInRoles(module.ModulePermissions.ToString("VIEW"))) 
    return PortalSecurity.IsInRoles(module.ModulePermissions.ToString("EDIT")); 
    return true; 
} 

而在底座上的代码PermissionProvider.cs类是如以下。

/// <summary> 
/// Returns a flag indicating whether the current user can view a module 
/// </summary> 
/// <param name="module">The page</param> 
/// <returns>A flag indicating whether the user has permission</returns> 

public virtual bool CanViewModule(ModuleInfo module) 
{ 
    bool canView; 
    if (module.InheritViewPermissions) 
    { 
     TabInfo objTab = TabController.Instance.GetTab(module.TabID, module.PortalID, false); 
     canView = TabPermissionController.CanViewPage(objTab); 
    } 
    else 
    { 
     canView = PortalSecurity.IsInRoles(module.ModulePermissions.ToString(ViewModulePermissionKey)); 
    } 
    return canView; 
} 

如果你仔细观察的基础代码检查模块继承页面权限或没有被完全从GranularPermissionProvider类失踪。我怀疑这是由于哪些模块未被加载而引起的问题。我想知道是否有相同的修补程序?

回答

0

您是否已从DNN Professional(或Evoq)升级到DNN的社区版?如果是这样,可能还有其他问题需要处理。当然权限的东西可能是其中之一。

您可以尝试访问“页面”管理功能。这应该会显示你所有页面的列表。您可以访问它们,并且应该能够看到已安装模块的列表,并且您应该能够在那里编辑模块权限。

您也可以安装Oliver Hine(oliverhine.com)权限提供程序,该提供程序与Evoq中提供的DNN功能相同。

只是一些想法...