none
visualstudioでサイトの権限を設定(sharepoint2013) RRS feed

  • 質問

  • visualstudio2012

    sharepoint2013を使用しております。

    spwebを使ってボタンを押すと新しいサイトを作るwebパーツを作りましたが、

    これを作ると同時にユーザーAはアクセスできてユーザーBはアクセスできないようにしたいです。

    SPweb, SPuser, SPmember, SPPermission, SProle, SPRightなどのLibraryは一つ一つ全部呼んでみましたが

    それでもわからなくて質問します。

    SPweb, SPuserは権限を指定するサイトと、ユーザーを指定するために必要だと思いますが、あれに権限を指定する昨日はないと思います。

    権限を指定してくれるのがSPpermissionかSPRoleかほかに私がわからないものかわかりませんが

    permissionを使ってみようとしてここの例をコピーしてみたら

    SPSite oSiteCollection = SPContext.Current.Site;
    using(SPWeb oWebsite = oSiteCollection.AllWebs["Site_Name"])
    {
        SPList oList = oWebsite.Lists["List_Name"];
        SPPermissionCollection collPermissions = oList.Permissions;
        SPUserCollection collUsers = oWebsite.Users;

        SPMember oMember = collUsers["User_Name"];

        oList.Permissions[oMember].PermissionMask =
            SPRights.AddListItems | SPRights.EditListItems;
    }

    エラーは出ませんがSPRight、SPpermissionが古い形式という警告が4つ出てきました。

    そしてList_NameのListが何を表しているのか何度説明を読んでみても分かることができませんでした。

    1人のユーザーのアクセス許可を変更しますという説明があったので最初はこれでいけるかと思いましたがだめでした。

    それで説明をまた読んでみてpermissionが古いやつで2013ではSPRoleってやつを使わなければいけないのかなと思って

    ここを参考してみました

    using(SPWeb oParentWebsite = SPContext.Current.Site.AllWebs["Site_Name"])
    {
        SPWebCollection collWebsites = oParentWebsite.Webs;
        SPUser oUser = oParentWebsite.Users["User_Name"];

        foreach (SPWeb oWebsite in collWebsites)
        {
            SPRole oRole = oWebsite.Roles["Role_Name"];
            oRole.RemoveUser(oUser);

            oWebsite.Dispose();
        }
    }

    ここも同じくした線のところに古い形式ですという警告が出ています。

    そしてRole_Nameに何を入れるべきか確かに分かりませんが権限の名前を入れればいいのかと予想してSharepoint側のサイトの権限でユーザーに与えられる権限のひとつである"閲覧のみ"を書いてみました。

    警告も出ているしRole_Nameのところに正しいものを入れたかも分かりませんがとにかく実行してみました。

    Site_Nameに QAmail/sercurity1を書いて

    user_Nameに bstest01も書いてみてwin\bstest01もかいて見ました。

    結果はユーザーを見つけませんでしたというエラーメッセージが出てきました。

    bstest01はQAmail/sercurity1サイトに接続できるユーザーであらかじめ編集までできる権限も与えておきました、使えないユーザーではないと思います。

    何を使えばいいかもまだ分からないし、使ってみようとしても使えない状態ぜんぜん進まない状態です。

    知っている方いらっしゃればくれぐれも教えてください。

    • 移動 星 睦美 2013年5月13日 5:24 SP2013 に関する内容
    2013年4月18日 4:43

回答

  • Gs.NangChun さん、こんにちは
    フォーラム オペレーターの星 睦美です。

    MSDN ライブラリのSharePoint 2013 開発の概要のページがSharePoint 2013 での開発に役にたつのではないかと思います。
    その中で、今回の質問には以下のページが参考になるかもしれません。

    (参考情報)
    SharePoint 2013 の認証、ユーザー、グループ、およびオブジェクト モデル:

    こちらの情報がなにかてがかりになれば幸いです。


    日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美

    • 回答としてマーク Gs.NangChun 2013年4月23日 0:22
    2013年4月19日 8:52
  • 星 睦美さま。

    いつもありがとうございます。

    SPRoleAssignment とSPRoleDefinitionを利用して100%理解してはいないですがある程度具現することができました。

    ありがとうございます。

    同じことで悩んできる方がいるか知らないですが、バージョンがあがりSPpermissionは使えなく権限の設定のためには上の二つを使えばいけそうですのでご参考してください。

    • 回答としてマーク Gs.NangChun 2013年4月23日 0:22
    2013年4月23日 0:22

すべての返信

  • Gs.NangChun さん、こんにちは
    フォーラム オペレーターの星 睦美です。

    MSDN ライブラリのSharePoint 2013 開発の概要のページがSharePoint 2013 での開発に役にたつのではないかと思います。
    その中で、今回の質問には以下のページが参考になるかもしれません。

    (参考情報)
    SharePoint 2013 の認証、ユーザー、グループ、およびオブジェクト モデル:

    こちらの情報がなにかてがかりになれば幸いです。


    日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美

    • 回答としてマーク Gs.NangChun 2013年4月23日 0:22
    2013年4月19日 8:52
  • 星 睦美さま。

    いつもありがとうございます。

    SPRoleAssignment とSPRoleDefinitionを利用して100%理解してはいないですがある程度具現することができました。

    ありがとうございます。

    同じことで悩んできる方がいるか知らないですが、バージョンがあがりSPpermissionは使えなく権限の設定のためには上の二つを使えばいけそうですのでご参考してください。

    • 回答としてマーク Gs.NangChun 2013年4月23日 0:22
    2013年4月23日 0:22