Google 网上论坛不再支持新的 Usenet 帖子或订阅项。历史内容仍可供查看。

WebDAV - 440 Login Timeout

已查看 62 次
跳至第一个未读帖子

Narayanan Sankaranarayanan

未读,
2006年2月12日 22:07:382006/2/12
收件人
Hi,

I am trying to access my company's corporate exchange server using WebDAV.

The objective is to send emails using WebDAV.

The server is setup with Form Based Authentication (FBA). I downloaded this
code from the internet.

For some reason I keep getting this 440 Login Timeout error.

Any help in this regard would be greatly appreciated. If you have a working
sample it would be better.

Thanks

Narayanan


Here is my code
=======================================================================================
<html>
<head>
<script language="JavaScript" type="text/javascript">
function getMessages()
{
var strCookies;
var strRequest;
var objXmlResult;

try
{
strCookies = doFBALogin( "https://mail.exchangeserver.com/public",
"mail.exchangeserver.com", "Domain\UserID", "MyPassword" );

strRequest = "<D:searchrequest xmlns:D = \"DAV:\" ><D:sql>SELECT
\"DAV:displayname\" FROM \"https://mail.exchangeserver.com/public\" WHERE
\"DAV:ishidden\" = false</D:sql></D:searchrequest>";

objXmlResult = Search( "https://mail.exchangeserver.com/public",
strRequest, strCookies );

//Do something with the XML object
}
catch( e )
{
// Handle the error!
alert( e );
}

return( false );
}

function Search( strUrl, strQuery, strCookies )
{
// Send the request to the server
var xmlHTTP = new ActiveXObject( "Microsoft.xmlhttp" );
var i;

xmlHTTP.open( "SEARCH", strUrl, false );
xmlHTTP.setRequestHeader( "Content-type:", "text/xml" );

// Add the cookies to the request. According to Microsoft article Q234486,
the cookie has to be set two times.
xmlHTTP.setRequestHeader( "Cookies", "Necessary according to Q234486" );
xmlHTTP.setRequestHeader( "Cookies", strCookies );
xmlHTTP.send( strQuery );

return( xmlHTTP.responseXML );
}


function doFBALogin( strDestination, strServer, strUsername, strPassword )
{
var xmlHTTP = new ActiveXObject( "Microsoft.XMLHttp" );
var strUrl;
var strContent;
var arrHeader;
var strCookies;
var intCookies;
var i;

// Prepare the URL for FBA login
strUrl = "https://" + strServer + "/exchweb/bin/auth/owaauth.dll";

xmlHTTP.open( "POST", strUrl, false );

xmlHTTP.setRequestHeader( "Content-type:",
"application/x-www-form-urlencoded" );

// Generate the body for FBA login
strContent = "destination=" + strDestination + "&username=" + strUsername +
"&password=" + strPassword;
xmlHTTP.send( strContent );

alert( xmlHTTP.responseText );

// Get all response headers
arrHeader = xmlHTTP.getAllResponseHeaders().split( "\n" );
strCookies = "";

intCookies = 0;

// Iterate through the collection of returned headers
for( i = 0; i < arrHeader.length; i++ )
{
// If the entry is a cookies, extract the name/value
if( arrHeader[i].indexOf( "Set-Cookie" ) != -1 )
{
strCookies += arrHeader[i].substr( 12 ) + "; ";
intCookies++;
}
}

// Check if two cookies have been returned. Otherwise throw an exception
if( intCookies < 2 )
{
throw "Could not log in to OWA!";
}

return( strCookies );
}
</script>
</head>
<body>
<font face='Verdana' size='2'>
Mailbox name:<br>
<input type='text' name='mailbox' value="MyUserID"><br>
<input type='button' name='getMessages' value=' GO '
onClick="return( getMessages() );"><br>
</body>
</html>

=======================================================================================


Glen Scales [MVP]

未读,
2006年2月14日 17:40:552006/2/14
收件人
This section of code looks a little suss

xmlHTTP.setRequestHeader( "Cookies", "Necessary according to Q234486" );
xmlHTTP.setRequestHeader( "Cookies", strCookies );

I would say that line should have just repeated

xmlHTTP.setRequestHeader( "Cookies", strCookies );
xmlHTTP.setRequestHeader( "Cookies", strCookies );

Cheers
Glen


"Narayanan Sankaranarayanan" <s_nar...@hotmail.com> wrote in message
news:%23SSNkqE...@TK2MSFTNGP15.phx.gbl...

Henning Krause [MVP]

未读,
2006年2月14日 18:11:062006/2/14
收件人
Hi Glen,

the KB article states that the first call to setRequestHeader is ignored.
The documentation for setRequestHeader states that a repeated call to
setRequestHeader will overwrite any previous values. In my tests that
statement did not caused the login function to fail.

Narayanan, did you check the cookies that came back from the server? There
should be at least two cookies.

Greetings,
Henning

"Glen Scales [MVP]" <gsc...@outlookexchange.com> wrote in message
news:u8xD6ebM...@TK2MSFTNGP11.phx.gbl...

0 个新帖子