无需打开浏览器即可登录SAP WebUI

时间:2014-01-27 15:33:05

标签: c# sap webui

我正在尝试为SAP WebUI做一点“性能测试”。因此,我必须使用C#程序与不同的用户多次登录。 HTTP流量将由fidllercore.dll跟踪。

现在,我的问题是经过两天的研究后,我无法自动登录SAP WebUI。如果我通过HttpWebRequest打开链接并提交我的用户名和密码,则响应流仅包含LogOn-Html。

我记得应该有办法通过SSO2-Cookies登录,但我找不到任何特别的内容。这与我所做的非常接近:Login to website, via C#

Request.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), Request);

private static void GetRequestStreamCallback(IAsyncResult result)
{
    if (result != null)
    {
        //Removed password from code!
        String data = "&sap-user=******&sap-password=**********";
        HttpWebRequest request = (HttpWebRequest)result.AsyncState;

        // End the operation
        System.IO.Stream newStream = request.EndGetRequestStream(result);

        // Convert the string into a byte array.
        byte[] dataStream = Encoding.UTF8.GetBytes(data);

        // Write to the request stream.
        newStream.Write(dataStream, 0, dataStream.Length);
        newStream.Close();

        //Thread.Sleep(5000);
        request.BeginGetResponse(new AsyncCallback(FinishWebRequest), request);
    }
}

1 个答案:

答案 0 :(得分:0)

最后fount this

我必须使用参数&sap-user=****&sap-password=***执行GET-Request。按照正确的顺序设置它们很重要,如上面的链接所示。

谢谢!

编辑:由于SAP-CRM-WEB-UI在同一请求中发送重定向和Cookie,HttpWebRequest忽略了这些Cookie以进行重定向,您必须进行纳米处理(如解释here)。