c # Загрузка файлов на sharepoint (2 вопроса) - PullRequest
1 голос
/ 06 апреля 2011

Я создал веб-сервис, который может загружать файлы в мою библиотеку сайта sharepoint. Вот код, который у меня есть:

        [WebMethod]
        public string getLibraries(byte[] contents, String destUrl){
            String message = "1";
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                SPWeb site = new SPSite(destUrl).OpenWeb();
                site.AllowUnsafeUpdates = true;
                message = "2";
                EnsureParentFolder(site, destUrl);

                site.Files.Add(destUrl, contents);
                message = "3";
                site.AllowUnsafeUpdates = false;

            });
            return message;
        }

Это работает в данный момент. Но в sharepoint вы можете добавлять новые столбцы в библиотеку. Например, если вы хотите добавить описание файла или что-то в этом роде.

Как загрузить эти дополнительные столбцы с файлом?

Еще одна вещь, которую я пытаюсь выяснить: Прямо сейчас он загружает файлы под именем "System account". Я попытался установить учетные данные веб-службы для учетных данных клиентского приложения, но оно не изменилось.

Как мне изменить это на логин пользователя, который использует веб-сервис?

пример: файл загружен myDomain/User1

спасибо -Gen-

Ответы [ 2 ]

1 голос
/ 06 апреля 2011
        [WebMethod]
        public string getLibraries(byte[] contents, String destUrl, string description){
            String message = "1";
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                SPWeb site = new SPSite(destUrl).OpenWeb();
                site.AllowUnsafeUpdates = true;
                message = "2";
                EnsureParentFolder(site, destUrl);

                site.Files.Add(destUrl, contents);
                message = "3";

                SPListItem listItem = site.GetListItem(destUrl);
                listItem["Description"] = description;
                listItem.Update();

                site.AllowUnsafeUpdates = false;

            });
            return message;
        }
0 голосов
/ 06 апреля 2011

ответ на мой второй вопрос:

SPUserToken token = new SPSite(destUrl).RootWeb.EnsureUser(userName).UserToken;
SPWeb site = new SPSite(destUrl, token).OpenWeb();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...