我們已將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類失蹤。我懷疑這是由於哪些模塊未被加載而引起的問題。我想知道是否有相同的修補程序?