[ 
https://issues.apache.org/jira/browse/CB-8761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14511764#comment-14511764
 ] 

ASF GitHub Bot commented on CB-8761:
------------------------------------

Github user sgrebnov commented on a diff in the pull request:

    
https://github.com/apache/cordova-plugin-file-transfer/pull/74#discussion_r29086624
  
    --- Diff: src/wp/FileTransfer.cs ---
    @@ -210,6 +216,80 @@ public FileTransferProgress(long bTotal = 0, long 
bLoaded = 0)
             }
     
             /// <summary>
    +        /// Helper method to copy all relevant cookies from the WebBrowser 
control into a header on
    +        /// the HttpWebRequest
    +        /// </summary>
    +        /// <param name="browser">The source browser to copy the cookies 
from</param>
    +        /// <param name="webRequest">The destination HttpWebRequest to add 
the cookie header to</param>
    +        /// <returns>Nothing</returns>
    +        private async Task CopyCookiesFromWebBrowser(HttpWebRequest 
webRequest)
    +        {
    +            var tcs = new TaskCompletionSource<object>();
    +
    +            // Accessing WebBrowser needs to happen on the UI thread
    +            Deployment.Current.Dispatcher.BeginInvoke(() =>
    --- End diff --
    
    I think we can use Invoke() instead of BeginInvoke() here so we don't need 
to additionally use TaskCompletionSource.


> WP8: FileTransfer does not inherit cookies from WebBrowser
> ----------------------------------------------------------
>
>                 Key: CB-8761
>                 URL: https://issues.apache.org/jira/browse/CB-8761
>             Project: Apache Cordova
>          Issue Type: Improvement
>          Components: Plugin File Transfer
>            Reporter: Dan Polivy
>
> On Android and iOS (and presumably other platforms), the file transfer plugin 
> will inherit any relevant cookies from the WebBrowser control when 
> communicating with a particular domain. On WP8, however, that is not the 
> case, as HttpWebRequest does not share cookies with the WebBrowser control.
> When cookies are used for authentication, and authentication is required for 
> file uploads, it becomes important to be able to set cookies on the 
> HttpWebRequest containing the upload. This should be supported on WP8 like it 
> is on other platforms.
> I have built a solution to this problem that works; it essentially copies the 
> relevant cookies from the WebBrowser control and manually generates a Cookie 
> header for the HttpWebRequest. Due to some bugs in the version of .NET on 
> WP8, not all cookie data is accessible in this manner (e.g. path, domain), 
> however enough is there to get the job done.
> This fix is more limited to only scenarios where the browser scheme and host 
> match that of the file transfer request to avoid any security issues with 
> cookies going to the wrong domain. In my scenario, I am hosting my web pages 
> remotely, on the same server I upload files to, so this works OK. 
> Unfortunately, it won't help with scenarios where the transfer is to a 
> different remote host.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to