Unfortunately, Flex does not support the ability to supply basic auth
credentials from the client.  I've been able to do this using the Socket
class but it required manual parsing of the http result in its raw
form...doable but not pretty.
 

Carson
 
____________________________________________
 
Carson Hager
Cynergy Systems, Inc.
http://www.cynergysystems.com <http://www.cynergysystems.com/> 
 
Email:  [EMAIL PROTECTED]
Office:  866-CYNERGY
Mobile: 1.703.489.6466

 

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Jason
Sent: Thursday, February 15, 2007 2:57 PM
To: [email protected]
Subject: [flexcoders] Basic Authorization in HTTPService without using
Flex Data Services



The following mxml file attempts to connect to BaseCamp to retrieve a
list of Projects. The problem is how to specify the basic
authorization. I notice that setCredentials() does not work with
direct http connections (no proxying).

Any other ideas? (The username and passwords are all valid - I created
a new basecamp project for this testing).

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml
<http://www.adobe.com/2006/mxml> ">

<mx:VBox width="100%" height="100%" horizontalAlign="center"
verticalAlign="middle">

<mx:Panel>
<mx:Form>
<!-- <mx:FormItem label="Username:">
<mx:TextInput id="txtUsername"/>
</mx:FormItem>
<mx:FormItem label="Password:">
<mx:TextInput id="txtPassword" displayAsPassword="true"/>
</mx:FormItem>
<mx:FormItem label="Path:">
<mx:TextInput id="txtPath"/>
</mx:FormItem> -->
<mx:FormItem>
<mx:Button label="Login" click="getProjects()"/>
</mx:FormItem>
</mx:Form>

<mx:TextArea width="100%" height="100" id="txtResults"/>


</mx:Panel>

</mx:VBox>

<mx:HTTPService
concurrency="single"
contentType="application/xml"
resultFormat="xml"
makeObjectsBindable="true"
id="feedRequest" 
url="http://flexexample.projectpath.com/project/list
<http://flexexample.projectpath.com/project/list> "
method="POST" 
useProxy="false"
fault="handleFault(event)"
result="handleResult(event)">
<mx:request>
<request>
</request>
</mx:request>
</mx:HTTPService>

<mx:Script>
<![CDATA[

import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;

public function getProjects() : void {
// the username is flexexample
// the password is flexexample
feedRequest.headers = 
{
Authorization: "Basic ZmxleGV4YW1wbGU6ZmxleGV4YW1wbGU=",
Accept: "application/xml"
};
feedRequest.send();
}

public function handleFault(event:FaultEvent) : void {
txtResults.text = "FAULT: " + event.toString();
}

public function handleResult(event:ResultEvent) : void {
txtResults.text = "RESULT: " + event.result.toString();
}

]]>
</mx:Script>

</mx:Application>



 

Reply via email to