DNN 7.1.2プロフェッショナルエディションをDNN 9.0.1にアップグレードしました。アップグレードは間違いなくスムーズに進んだ。しかし、アップグレードされたWebサイトにアクセスするときには、ページにロードされていたモジュールはありません。同時に、正しいスキンメニューなどがロードされていることを強調したいと思います。多くのデバッグの後、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クラスから欠落しているページのアクセス許可かを継承する場合は、密接に基本コードのチェックを見てみると。私はこれがモジュールがロードされていないための問題であると思われます。私は同じもののための修正があるかどうか疑問に思っていた?