http пост в sharepoint с внешнего сервера - PullRequest
0 голосов
/ 28 января 2011

Добрый день друзья.Мне нужно сделать http сообщение на sharepoint MOSS 2007 mysharepoint / somepage.aspx вне сервера sharepoint.Я был успешным по запросу HTTP GET.ИТ-отдел возвращает правильное содержимое страницы aspx sharepoint и т. Д. Таким образом, я получаю данные из GET-запроса, такие как скрытые поля, которые необходимо использовать в POST-запросе, или запрос просто не будет проверяться с ошибкой 401 (__EVENTTARGET, __VIEWSTATE и т. Д.). Теперь яиспользование стандартного HTTP POST, создание значений моей базовой строки urlEncode и фактическая отправка.Sharepoint не возвращает мне ни одной ошибки, он просто возвращает ту же страницу, что и ответ на мой запрос POST.

enter code here

с использованием System;using System.Collections.Generic;используя System.Text;используя System.Net;использование System.Web;

использование System.IO;

использование System.Collections;используя System.Configuration;используя System.Data;using System.Linq;

пространство имен submit_post_test {class Program {static void Main (string [] args) {

        WebRequest req1 = WebRequest.Create("http://XXXXXXXXX/Pages/DocumentSearch.aspx");
        req1.Method = "GET";
        req1.Credentials = System.Net.CredentialCache.DefaultCredentials;
        //req1.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested;
        WebResponse res1 = req1.GetResponse();
        StreamReader sr1 = new StreamReader(res1.GetResponseStream());
        string returnvalue1 = sr1.ReadToEnd();


        string MSO_PageHashCode = "";
        MSO_PageHashCode = Extract(returnvalue1, "MSO_PageHashCode");


        string MSOWebPartPage_PostbackSource = "";
        string MSOTlPn_SelectedWpId = "";
        string MSOTlPn_View = "0";
        string MSOTlPn_ShowSettings = "false";
        string MSOSPWebPartManager_StartWebPartEditingName = "false";
        string MSOGallery_SelectedLibrary = "";
        string MSOGallery_FilterString = "";
        string MSOTlPn_Button = "none";
        string __EVENTTARGET = "";
        string __EVENTARGUMENT = "";
        string MSOSPWebPartManager_DisplayModeName = "Browse";
        string MSOWebPartPage_Shared = "";
        string MSOLayout_LayoutChanges = "";
        string MSOLayout_InDesignMode = "";
        string MSOSPWebPartManager_OldDisplayModeName = "Browse";

        string __EVENTVALIDATION = "";
        __EVENTVALIDATION = Extract(returnvalue1, "__EVENTVALIDATION");

        string __VIEWSTATE = "";
        __VIEWSTATE = Extract(returnvalue1, "__VIEWSTATE");

        string __REQUESTDIGEST = "";
        __REQUESTDIGEST = Extract(returnvalue1, "__REQUESTDIGEST");

        string ctl00_PlaceHolderSearchArea_ctl01_ctl00 = "http://XXXXXXX/ProceduresManual"; //ctl00$PlaceHolderSearchArea$ctl01$ctl00
        //ctl00_PlaceHolderSearchArea_ctl01_ctl00 = Extract(returnvalue1, "ctl00_PlaceHolderSearchArea_ctl01_ctl00");

        string ctl00_PlaceHolderSearchArea_ctl01_SBScopesDDL = "";
       // string ctl00_PlaceHolderSearchArea_ctl01_S3031AEBB_InputKeywords = ""; //ctl00$PlaceHolderSearchArea$ctl01$S3031AEBB_InputKeywords
        string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxTitle = ""; //a ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$tbxTitle
        string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxDocNo = ""; //ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$tbxDocNo
        string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_ddlDepartment = "B101000000000";//B101000000000 //ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$ddlDepartment
        string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_ddlActivity = ""; //ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$ddlActivity
        string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxValidDateFrom_tbxValidDateFromDate = "";//ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$tbxValidDateFrom$tbxValidDateFromDate
        string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxValidDateTo_tbxValidDateToDate = ""; //ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$tbxValidDateTo$tbxValidDateToDate
        string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_ddlType = "";//ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$ddlType
        string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_filterButton = "Filter";//ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$filterButton
        string ctl00_m_providerWebpart_xmlString = "";//ctl00$m$providerWebpart$xmlString
        string ctl00_m_providerWebpart_methodName = "getDocumentsByQuery"; //ctl00$m$providerWebpart$methodName
        string __spDummyText1 = "";
        string __spDummyText2 = "";


        StringBuilder build = new StringBuilder();
        build.Append("MSO_PageHashCode=");
        build.Append(MSO_PageHashCode);
        build.Append("&MSOWebPartPage_PostbackSource=");
        build.Append(MSOWebPartPage_PostbackSource);
        build.Append("&MSOTlPn_SelectedWpId=");
        build.Append(MSOTlPn_SelectedWpId);
        build.Append("&MSOTlPn_View=");
        build.Append(MSOTlPn_View);
        build.Append("&MSOTlPn_ShowSettings=");
        build.Append(MSOTlPn_ShowSettings);
        build.Append("&MSOGallery_SelectedLibrary=");
        build.Append(MSOGallery_SelectedLibrary);
        build.Append("&MSOGallery_FilterString=");
        build.Append(MSOGallery_FilterString);
        build.Append("&MSOTlPn_Button=");
        build.Append(MSOTlPn_Button);
        build.Append("&__EVENTTARGET=");
        build.Append(__EVENTTARGET);
        build.Append("&__EVENTARGUMENT=");
        build.Append(__EVENTARGUMENT);
        build.Append("&__REQUESTDIGEST=");
        build.Append(__REQUESTDIGEST);
        build.Append("&MSOSPWebPartManager_DisplayModeName=");
        build.Append(MSOSPWebPartManager_DisplayModeName);

        build.Append("&MSOWebPartPage_Shared=");
        build.Append(MSOWebPartPage_Shared);

        build.Append("&MSOLayout_LayoutChanges=");
        build.Append(MSOLayout_LayoutChanges);

        build.Append("&MSOLayout_InDesignMode=");
        build.Append(MSOLayout_InDesignMode);
        build.Append("&MSOSPWebPartManager_OldDisplayModeName=");
        build.Append(MSOSPWebPartManager_OldDisplayModeName);
        build.Append("&MSOSPWebPartManager_StartWebPartEditingName=");
        build.Append(MSOSPWebPartManager_StartWebPartEditingName);
        build.Append("&__VIEWSTATE=");
        build.Append(__VIEWSTATE);
        build.Append("&__EVENTVALIDATION=");
        build.Append(__EVENTVALIDATION);
        build.Append("&ctl00%24PlaceHolderSearchArea%24ctl01%24ctl00=");
        build.Append(ctl00_PlaceHolderSearchArea_ctl01_ctl00);
        build.Append("&ctl00%24PlaceHolderSearchArea%24ctl01%24SBScopesDDL=");
        build.Append(ctl00_PlaceHolderSearchArea_ctl01_SBScopesDDL);
        //build.Append("&ctl00$PlaceHolderSearchArea$ctl01$S3031AEBB_InputKeywords=");
        //build.Append(ctl00_PlaceHolderSearchArea_ctl01_S3031AEBB_InputKeywords);
        build.Append("&ctl00%24PlaceHolderSearchArea%24ctl01%24S3031AEBB_InputKeywords=");
        build.Append("");
        build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24tbxTitle=");
        build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxTitle);
        build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24tbxDocNo=");
        build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxDocNo);
        build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24ddlDepartment=");
        build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_ddlDepartment);
        build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24ddlActivity=");
        build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_ddlActivity);
        build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24tbxValidDateFrom%24tbxValidDateFromDate=");
        build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxValidDateFrom_tbxValidDateFromDate);
        build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24tbxValidDateTo%24tbxValidDateToDate=");
        build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxValidDateTo_tbxValidDateToDate);
        build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24ddlType=");
        build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_ddlType);
        build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24filterButton=");
        build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_filterButton);
        build.Append("&ctl00%24m%24providerWebpart%24xmlString=");
       // build.Append(HttpUtility.UrlEncode("<query id = \"OneParamInOutWpart\" parseFiles=\"1\"><filter><q tid=\"b-q\"><o>1</o><q tid=\"w-q\"><t tid=\"t\"><n>fTitle_LT</n><v tid=\"t-s\">*a*</v></t></q></q></filter></query>"));
        build.Append(ctl00_m_providerWebpart_xmlString);
        build.Append("&ctl00%24m%24providerWebpart%24methodName=");
        build.Append(ctl00_m_providerWebpart_methodName);
        build.Append("&__spDummyText1=");
        build.Append(__spDummyText1);
        build.Append("&__spDummyText2=");
        build.Append(__spDummyText2);


        string POSTDATA = build.ToString();

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://XXXXXXXX/Pages/DocumentSearch.aspx");

        byte[] send = Encoding.UTF8.GetBytes(POSTDATA);
        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";
        //req.ContentType = "text/html";
        req.ContentLength = send.Length;
        req.CookieContainer = new CookieContainer(); // enable cookies

        req.Credentials = System.Net.CredentialCache.DefaultCredentials;
       // req.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested;

        Stream sout = req.GetRequestStream();
        sout.Write(send, 0, send.Length);
        sout.Flush();
        sout.Close();

        WebResponse res = req.GetResponse();
        StreamReader sr = new StreamReader(res.GetResponseStream());
        string returnvalue = sr.ReadToEnd();

    }

    public static string Extract(string BaseString, string ExtractionName)
    {
        string returnvalue = "";
        if (BaseString.IndexOf(ExtractionName) != -1) // found line
        {
            int startIndex = BaseString.LastIndexOf(ExtractionName) + ExtractionName.Length +9;
            int endIndex = BaseString.IndexOf("\"", startIndex);
            int count = endIndex - startIndex;
            returnvalue = BaseString.Substring(startIndex, count);
        }

        return HttpUtility.UrlEncode(returnvalue);
    }
}

}

, как вы можете видеть, у меня естьнекоторые значения POST жестко запрограммированы, но я заверяю вас, что они правильные (полученные из формы отправки пакета или веб-браузера и отслеживания с помощью fidler), если я попытаюсь добавить неправильные значения, sharepoint вернет сообщение об ошибке сразу.

Таким образом, код как есть, после того, как сообщение просто возвращает ту же старую страницу, а поиск фактически не выполняется, я могу сказать, что потому что фактический поиск занимает несколько секунд.(вот о чем эта форма, ищите записи в архивной БД).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...