The client for one of my main web connection sites (www.cirrealty.ca) thought it might be nice to have an internal
chat application. Since the web connection samples includes such a thing I thought I would tweak it a bit to see
how it worked. 10% of the site or less is public pages (using the .cir scriptmap) and 90% is login access only.
Login security is handled by IIS and active directory (in most cases simply by removing anonymous access to the directory in question).
This all works fine.
For the chat features, I thought I build a new server just for this, because there is a lot of traffic and I didn't want it showing
up in the other web connection server. So I created a new scriptmap called .cht (for chat).
That was all fine. I installed the new server exe, created the scriptmap for .cht but I kept getting page not found.
After fumbling for a long time I moved my page to section of the web site that didn't require authentication.
Voila! It worked. (Well, sort of, the page assumes there is an authenticated user and sets the chat page up for this user
but in the anonymous area of the web site there is no authenticated user so that part doesn't work).
So, to solve that last issue I created a little page using my old scriptmap (.cir) from the authenticated area to do a redirect
to the the chat page in the anonymous area but passing a guid on the querystring that the chat page could use to locate the user.
A bit of a kludge but it works.
Now, you might think authentication is causing the problem. But let's throw a wrinkle here. I moved the chat page to a different
directory that also requires authentication. It worked absolutely fine in THIS directory. So, that would seem to solve the problem, right?
Run the chat page from this location!
Not so simple. The directory I wanted to run the page from, and where my other scriptmap (.cir) runs fine has a slightly different authentication process. It is using forms authentication as configured in the web.config file.
Because the users on the website have moved to google mail, they wanted a single sign on feature so they could log into the website and clicking a link for
google mail would automatically connect them to their google mail account (which is not @gmail.com) but a special email service provided for all users of the company. They've moved from their own exchange server to a google provided service. So the sign on page is an aspx page that makes some other DLL calls and somehow sets things up to meet google's requirements.
There is something in active directory (maybe a guid of sorts) that ties back to the google account and makes all this single sign on work.
The downside is, this sign on is redirected to sso.cirrealty.ca from www.cirrealty.ca so any authentication that happens here isn't carried over to pages that
aren't in the same directory hierarchy.
Now, one of the wierd things I found with this slightly different authentication in relation to web connection, is that in most of the directory structure
I had to add a blank file called wc.wc. Any call to a page that used a process method (not an actual .cir page which uses the new framework), would returen a 404 error (page not found) unless this file existed in the directory. So if I had a process method like wc.dll?METH~DoStuff, this method would return page not found (because there is no physical page) unless the empty wc.wc page was there (Don't ask how long it took to figure this out!)
The confounding thing is why do the .cir pages work under this authentication and not the new .cht page? I can't see that any configuration is different. The page works in an anonymous location and in any authenticated area that is not the forms authentication!
Any ideas would be helpful (though there may be great angst in america today since the US junior hockey team has been relegated out of the medals at the world junior tournament).
Bob