Search This Blog

Tuesday, September 22, 2009

SiteMap, IFD/OnPremise and relative URLs

I don’t know if you've already faced this problem: When you develop a web page that you want displayed via the SiteMap Navigation, the URLs called are different depending whether you are in OnPremise or IFD mode.

In IFD, you get a URL like http://organization_name.domain.extension/ISV/default.aspx

In OnPremise, it will look like
http://organization_name.domain.extension/organization_name/ISV/default.aspx

I assume that you use the same URL to access both Dynamics CRM authentication mode.

Now, if you want to use relative URLs to load images, scripts or other (which are also contained in the ISV folder), you're facing a problem: how to use relative URLs to be valid for both IFD and OnPremise mode?

The simplest answer, which is often found on the forums, is: Use absolute URLs.

Certainly, but this is not very clean to use hard coded server names.

So I propose you my method. Maybe not the best but it does the job (even if, as we shall see, it still uses absolute URL).

In the code behind your ASP.Net page, create a new string property called BaseUrl.

In the Get accessor, write the following code:

public string BaseUrl
{
get
{
string baseUrl = string.Format("{0}://{1}",
Request.IsSecureConnection ? "https" : "http",
Request.Url.Host);

return baseUrl;
}
}



Then in the HTML content of your website, you can use the <% = BaseUrl %>wherever you want to reference relative URLs.

For example:

<img src="<%= BaseUrl %>/ISV/MyImages/Image.gif" > 


Well, it’s right, you still have an absolute URL in the source code of the page. But at least you do not have to worry about changing environments and authentication mode.

Note: If you need relative URLs on your scripts, you can replace the ".js" file by an ".aspx" file and perform the same manipulation as above.

Monday, September 21, 2009

Tools Update : IFD authentication supported

Hi all,

It's been a while since the last post... Unfortunately (or not, related to current economic context), I have lot of work these days and it's quite difficult to find time for my blog.

But nevertheless, I found time to update authentication process in my tools and they now all support IFD authentication.

The little extra concerns ViewLayoutReplicator and SearchablePropertyAttributeUpdater tools: they now use the same authentication assistant than the others tools.

You can still download them using right panel of this blog

Enjoy!