2016-04-04 35 views
0

i özel CONTROLKEY ile (Nuget gelen Christoc.com DNN 8 MVC modülü şablonu temel) MVC kullanarak basit bir DNN modülü oluşturduk. Bu özel ControlKey'in amacı belirli bir MVC Eylemini çağırmaktır. Bu exmaple için bu ControlKey "DoIt" diyeceğim.DNN modül izinleri - sadece süper kullanıcı?

Yani, .dnn dosyasında CONTROLKEY tanımlayın:

modülün Görünüm sadece bu gibi NavigateURL kullanılarak biçimlendirilmiş özel CONTROLKEY bir bağlantı, içerir

<moduleControl> 
    <controlKey>DoIt</controlKey> 
    <controlSrc>MyApp.Modules.TestModule.Controllers/DoIt/DoIt.mvc</controlSrc> 
    <supportsPartialRendering>False</supportsPartialRendering> 
    <controlTitle>DoIt</controlTitle> 
    <controlType>View</controlType> 
    <iconFile /> 
    <helpUrl /> 
    <viewOrder>0</viewOrder> 
    <supportsPopUps>True</supportsPopUps> 
</moduleControl> 
:

http://dnndev.me/TestPage/tabid/89/ctl/DoIt//mid/450/Default.aspx

bir Süper Kullanıcı hesabı olarak oturum

doğru bu bağlantıyı çalışır ve DoIt eylemi yürütür. Ancak, Süper Kullanıcı olmayan bir hesap olarak oturum açıldığında, Yönetici olarak bile, Erişim Engellendi iletisi alırım.

Ben modül ve sayfa izinleri, (her iki sayfadan miras veya modülün kendisi de) ayarlamak için denedim ama olmayan SuperUser hesaplarıyla ile onu elde edemezsiniz.

Neler eksik? Bu özel ControlKey için izinleri bir yere koymam gerekiyor mu? Hangi iznin eksik olduğunu öğrenmenin bir yolu var mı?

cevap

1

Varsayılan görünümünüz, bir MVC denetleyicisi (DnnController) adında, DoItController adında DoIt() adında bir eylem yönteminin yanı sıra, Index() (veya benzer bir şey) adlı varsayılan görünüm eylemine sahip olduğunuzdan emin olacağım. MVC URL yardımcı kullanarak

deneyin varsayılan görünümünüz (Index.cshtml) adresinin DoIt eyleme bağlamak.

  • Eylem adıyla (yani: DoIt)
  • Kontrolör adı (yani: DoIt)
  • routeValues ​​(yani: ctl = [Kontrol Tuşu

    <a href="@Url.Action("DoIt", "DoIt", new {ctl = "DoIt", itemId = item.ItemId})">Do It!</a> 
    

    Url.Action argümanlar olarak alır ], [otherQS args] render href şöyle)

:

http://801.dnndev.me/TestPage/ctl/DoIt/mid/437/controller/DoIt/action/DoIt

İlgili konular