When downloading file from static url, it’s simple to use WebClient.
But in order to secure data file, data file cannot locate in web site. Instead, server code is used to retrieve data file from somewhere. In that case, client request should contain proper data for triggering server side event. You cannot put data into WebClient on client side. Even with HttpWebRequest, it’s hard to put proper data for triggering server side event. If server side uses .NET, it’s even more complicated, due to postback mechanism and viewstate are used.
BTW, Credentials can be used for both Windows authentication (what you called company domains) and Forms authentication (it’s used by most internet application.)
But in order to secure data file, data file cannot locate in web site. Instead, server code is used to retrieve data file from somewhere. In that case, client request should contain proper data for triggering server side event. You cannot put data into WebClient on client side. Even with HttpWebRequest, it’s hard to put proper data for triggering server side event. If server side uses .NET, it’s even more complicated, due to postback mechanism and viewstate are used.
BTW, Credentials can be used for both Windows authentication (what you called company domains) and Forms authentication (it’s used by most internet application.)