2016-05-16 8 views
0

DNN7.0.3を使用しています。DNNでaccessLevelsを利用する方法

これは私のサービスコントローラからの例です:

[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 Unauthorized」メッセージが表示されて失敗します。

[DnnAuthorize(StaticRoles = "Registered Users")] 

[DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.Edit)] 

を交換すると、それは動作します。しかし、私は静的な役割 "登録ユーザー"のためだけにこれを動作させたくありません。

私はここで間違っていますか?

答えて

0

DNNChat.comのbdukesさんのおかげで答えが見つかりました。 エラーが私はこれがモジュールに編集権限を持つユーザーにアクセスを許可します

[DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.Edit)] 

を使用していました! しかし私は管理者以外にはこれを持たせたくありません。

そこで解決策を使用する代わりに、次のとおりです。

[DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.View)] 

That'sそれはそれにすべてのです。 あなたがそれを知っているとシンプルです。

ありがとう@bdukes

関連する問題