Archives
-
IIS7 Hostable Web Core Custom Service (WebCoreService)
Hostable Web Core (known as HWC) is a new concept in IIS7 to host a website/webservice inside your own process. In short a smaller hosted version of IIS (an IIS7 express edition?).
This is accomplished by making a LoadLibrary call to load hwebcore.dll (%systemdrive%\Windows\System32\inetsrv\hwebcore.dll) -
Kernel mode authentication in IIS7
Here is another featured moved to kernel mode. Yea it's Windows Authentication which is by default configured to run in kernel mode.
-
Differences in SSL request/response flow on IIS6 vs IIS7 (Kernel mode SSL)
There are so many things which has changed in IIS7 for the better and one of them is about the way SSL works. Although IIS6 allowed kernel mode SSL (starting with Windows 2003 SP1) that wasn't the default option. As far as I know (AFAIK) not many customers used it or knew about it.
-
How to Check certificate expiry for webserver (IIS) certificates using script
Although the title says webserver certificates the script is not limited to webserver certificates only.
-
Redirecting from http to https in IIS7 (http2https Updated)
I had written a sample to redirect all http traffic to https (secure) in September 2006 http://www.awesomeideas.net/post/2006/09/03/Redirecting-from-http-to-https-in-IIS7.aspx
In one of our internal discussion alias the question came up that this method does not work when SSL is forced on the website. Step 5 below handles that scenario by checking the "403.4 SSL required" response and handling it during OnEndRequest event.
So let us get into action (I'm using C# for this sample)
- Download and Install IIS7 Managed Module Starter Kit
(Not really a requirement but it would make developing IIS7 modules easier) - Rename the default class name created to "redir.cs" and rename project/solution/namespace to "http2https"
- Add the following code in "Init" method
// register for the BeginRequest event application.BeginRequest += new EventHandler(OnBeginRequest); application.EndRequest += new EventHandler(OnEndRequest);
- Add the following method to implement "BeginRequest" event
//BeginRequest implementation public void OnBeginRequest(Object sender, EventArgs e) { HttpApplication app = (HttpApplication)sender; string HttpUrl = app.Request.Url.ToString(); if (HttpUrl.StartsWith("http:")) //Redirection done only if URL starts with http: { HttpUrl = HttpUrl.Replace("http:", "https:"); app.Response.Redirect(HttpUrl.ToString(), true); //Redirecting (http 302) to the same URL but with https app.Response.End(); //We don't want to any further so end } }
-
Add the following method to implement "OnEndRequest" event
- Download and Install IIS7 Managed Module Starter Kit