I am using Netegrity's SiteMinder single sign on for a subset part of my development machine. Something like https://testdev.com/sm/testapp where /sm is my SiteMinder configured location.
However, when I run ASP.NET MVC apps in a virtual directory under the /sm folder I get some unexpected results from Url.RouteUrl or Html.BeginRouteForm or any Url or Html helper method generating urls.
First, if I run the default.aspx page, I receive urls with double names parts as in /sm/testapp/testapp/home/index where I would expect to see /sm/testapp/home/index. I have corrected this issue by doing a Response.Redirect("~/home/index") in the default.aspx.cs and removing the supplied implementation.
I believe these are symptoms of how SiteMinder is set up in IIS 6. If I take a look at the MetaBase.xml I find the following for the /sm directory:
<IIsConfigObject Location ="/LM/W3SVC/1/ROOT/sm"
>
and my test application configuration as follows:
<IIsWebDirectory Location ="/LM/W3SVC/1/ROOT/sm/testapp"
AccessSSLFlags="AccessSSL | AccessSSL128"
AppFriendlyName="testapp"
AppIsolated="2"
AppRoot="/LM/W3SVC/1/Root/sm/testapp"
DefaultDoc="Default.aspx,Default.htm,Default.asp,index.cfm,index.htm,index.html,iisstart.htm"
ScriptMaps="* Lot of script maps related to 3.5 .Net"
>
<Custom
Name="UNCPassword"
ID="3003"
Value="Large Number"
Type="STRING"
UserType="IIS_MD_UT_FILE"
Attributes="INHERIT | SECURE"
/>
Is there something in how ASP.Net handles IIsConfigObject configuration items vs. regular virtual directories? Of course, if I set up a virtual directory and a nested virtual directory, the URL paths are what I would expect. Something in how the /sm directory is defined in IIS 6 is causing the paths and other URL generating routines to foul up.
Any help on the IIsConfigObject would be great.