1

特定のリストのグループ/ユーザーに「読み取り」権限をプログラムで付与する方法は? .

Share Point に手動でグループを作成しました。リストも作成。

ここで、特定のグループ/ユーザーの特定のリストに「読み取り」権限を追加したいと考えています。

Web パーツは正常に動作します。

ただし、権限は更新されません。親切に助けてください。

私は以下のコードを貼り付けています...

 protected void Button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(TextBox1.Text) || string.IsNullOrEmpty(TextBox2.Text))
            {
                Label4.Text = "Please Enter Some Values";
                //Label4.ForeColor = System.Drawing.Color.Red;
            }
            else
            {

                SPWeb web = SPContext.Current.Web;
                SPGroup group = web.SiteGroups[TextBox2.Text];
                SPWebApplication webApp = web.Site.WebApplication;
                webApp.FormDigestSettings.Enabled = false;
                web.AllowUnsafeUpdates = true;
                SPRoleDefinition rDefination = web.RoleDefinitions.GetByType(SPRoleType.Reader);
                 SPRoleAssignment rAssignment = new SPRoleAssignment(group);

                rAssignment.RoleDefinitionBindings.Add(rDefination);
                SPList list = web.Lists[TextBox1.Text];
                list.BreakRoleInheritance(true);
                //SPItem item = list.
                //item.RoleAssignments.Add(rAssignment);
                list.Update();
                Label4.Text = "Permission is successfully on item";
                //Label4.ForeColor = System.Drawing.Color.Green;
                TextBox1.Text = string.Empty;
                TextBox2.Text = string.Empty;
                web.RoleAssignments.Add(rAssignment);
                web.Update();
                web.AllowUnsafeUpdates = false;
                webApp.FormDigestSettings.Enabled = true;

            }
     }
4

2 に答える 2

0

これを以下のコードで使用してみてください。runwithelevatedprivileges は、単純なユーザーがリストを更新できるようにします。

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    if (string.IsNullOrEmpty(TextBox1.Text) || string.IsNullOrEmpty(TextBox2.Text))
            {
                Label4.Text = "Please Enter Some Values";
                //Label4.ForeColor = System.Drawing.Color.Red;
            }
            else
            {

                SPWeb web = SPContext.Current.Web;
                SPGroup group = web.SiteGroups[TextBox2.Text];
                SPWebApplication webApp = web.Site.WebApplication;
                webApp.FormDigestSettings.Enabled = false;
                web.AllowUnsafeUpdates = true;
                SPRoleDefinition rDefination = web.RoleDefinitions.GetByType(SPRoleType.Reader);
                 SPRoleAssignment rAssignment = new SPRoleAssignment(group);

                rAssignment.RoleDefinitionBindings.Add(rDefination);
                SPList list = web.Lists[TextBox1.Text];
                list.BreakRoleInheritance(true);
                //SPItem item = list.
                //item.RoleAssignments.Add(rAssignment);
                list.Update();
                Label4.Text = "Permission is successfully on item";
                //Label4.ForeColor = System.Drawing.Color.Green;
                TextBox1.Text = string.Empty;
                TextBox2.Text = string.Empty;
                web.RoleAssignments.Add(rAssignment);
                web.Update();
                web.AllowUnsafeUpdates = false;
                webApp.FormDigestSettings.Enabled = true;

            }

});
于 2013-03-30T17:42:29.670 に答える