2016-05-16 67 views
0

我正在使用DNN7.0.3。如何利用DNN訪問級別

這是從我的服務控制器中例如:

[HttpPost] 
[ValidateAntiForgeryToken] 
[DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.Edit)] 
//[DnnAuthorize(StaticRoles = "Registered Users")] 
[SupportedModules("MyModuleName")] 
public HttpResponseMessage UpdateWysUsersItem(BBWysUsersInfo item) 
{ 
    BBWysUserProfileController controller = new BBWysUserProfileController(); 
    item = controller.UpdateWysUsersItem(item); 
    return Request.CreateResponse(HttpStatusCode.OK, item); 
} 

在ASCX後面的代碼,我得到了

private void Page_Load(object sender, EventArgs e) 
{ 
    DotNetNuke.Framework.ServicesFramework.Instance.RequestAjaxAntiForgerySupport(); 
} 

當作爲主機(管理員)登錄這項服務的工作,我的表中的內容得到更新。但是,當我以「註冊用戶」身份登錄時,它會因「401未授權」消息而失敗。

[DnnAuthorize(StaticRoles = "Registered Users")] 

更換

[DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.Edit)] 

使得它的工作。但是,我不希望這隻適用於「註冊用戶」靜態角色。

我在這裏做錯了什麼?

回答

0

我找到了答案,感謝DNNChat.com的bdukes。 是我使用

[DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.Edit)] 

錯誤這將權限授予誰擁有編輯權限到模塊的用戶! 但是我不希望任何其他比管理員有此。

因此該解決方案是代替使用:

[DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.View)] 

That's所有它是給它。 當你知道它時很簡單。

謝謝@ bdukes