2017-02-09 6 views
0

DNN 7.1.2 전문판을 DNN 9.0.1로 업그레이드했습니다. 업그레이드는 아무런 오류없이 순조롭게 진행되었습니다. 그러나 업그레이드 된 웹 사이트에 액세스 할 때 페이지에로드 된 모듈이 없습니다. 동시에 정확한 스킨 메뉴 등이로드되고 있음을 강조하고 싶습니다. 디버깅을 많이 한 후 DotNetNuke.Profession.dll이라는 이름으로 dll에서 문제를 찾을 수있었습니다. 이 dll에는 GranularPermissionProvider라는 이름의 클래스가 있습니다. GranularPermissionProvider는 현재 사용자 권한을 기반으로 페이지에 모듈을 표시해야하는지 여부를 확인합니다. 베이스의 코드 반면 DotNetNuke.ProfessionalDNN 7.1.2에서 DNN 9.0.1로 업그레이드 한 후 DNN 페이지에 모듈이 누락 됨

에서

// 코드

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

GranularPermissionProvider.cs : 범인 코드는 아래 것 같다 . 완전히 GranularPermissionProvider 클래스에서 누락되는 모듈이 페이지 권한을 상속 또는하지 않을 경우

/// <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; 
} 

당신은 밀접하게 기본 코드 검사를 보면. 모듈로드가되지 않아서 이것이 문제라고 생각됩니다. 나는 똑같은 문제가 있는지 궁금 해서요?

답변

0

DNN Professional (또는 Evoq)에서 DNN 커뮤니티 버전으로 업그레이드 했습니까? 그렇다면 거래해야하는 다른 문제가있을 수 있습니다. 확실히 권한은 그 중 하나 일 수 있습니다.

"페이지"관리 기능을 사용해 볼 수 있습니다. 그러면 모든 페이지 목록이 표시됩니다. 방문 할 수 있으며 설치된 모듈 목록을 볼 수 있어야하며 모듈 권한을 편집 할 수 있어야합니다.

Evoq에서와 동일한 DNN 기능을 제공하는 Oliver Hine (oliverhine.com) 권한 제공 업체를 설치할 수도 있습니다.

그냥 몇 가지 아이디어 ...