none
Получить ID папки в списке RRS feed

  • Вопрос

  • Добрый день!

    Дайте совет по следующие проблеме:

    Нужно проверить есть ли у пользователя доступ к определенной папке на портале. Использую следующее:

                              

    SPSite spsite = new SPSite("http://sharepoint");
                SPWeb spweb = spsite.OpenWeb();

                SPUser oUser = spweb.AllUsers[@"i:0#.w|domain\"+ login];
                string id = oUser.ID.ToString();

                SPList splist = spweb.Lists[listTitle];


                bool perm = false;
                foreach (SPListItem item in splist.Folders)
                {

                    SPFolder f = item.Web.GetFolder("http://sharepoint/Lists/list1/"+ folder );
                    int IDfolder = f.Item.ID;
                    SPListItem folders = spweb.Lists[listTitle].Folders[IDfolder];  !!!!

                    if (item.Name == folders.Name)
                    {
                        perm = (bool)folders.DoesUserHavePermissions(oUser, SPBasePermissions.EditListItems);
                        break;
                    }
                }

                return perm;

    В том месте, где восклицательные знаки, нужно знать id по названию. IDfolder - принимает такое значение, что выползает exception - значение выходит за рамки (в моем случае выдает id = 2212). НО решил посчитать  папrb - нужная мне -  6 по счету, ставлю IDfolder=6 -  и ВУАЛЯ!!!  

    Вопрос: как на этой выйти правильно и по названию :) ?



    • Изменено Ivan.T 13 мая 2015 г. 13:59

Ответы

  • Добрый день,

    1. решил посчитать - по счету ничего у вас не получится - порядковый номер по счету и ID папки это две разные сущности.

    2. Зачем при проверке доступа к определенной папке вы используете foreach? вы же можете получить требуемую папку через Web.GetFolder("FolderUrl");

    3. Папку можно получить через Свойство SPFolder.UniqueId и SPWeb.GetFolder Method (Guid)

    // Get the folder's Guid.
    Guid id = folder.UniqueId;
    folder = web.GetFolder(id);


    • Помечено в качестве ответа Ivan.T 14 мая 2015 г. 13:00

Все ответы