Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Modify the Realm in the browser's Authentication Dialog

0.00/5 (No votes)
3 Aug 2004 1  
An article on using ISAPI with MFC support to modify the authentication realm

Introduction

This article shows how you can use the SF_NOTIFY_SEND_RESPONSE notification that is not available if you use the MFC ISAPI Filter App-Wizard. With this sample, you are able to use the function OnSendResponse to modify the header and data of each HTTP response before the IIS sends it back to the client's browser.

Background

In the GetFilterVersion, we register the SF_NOTIFY_SEND_RESPONSE flag. Then, we wait in the overwritten HttpFilterProc for the SF_NOTIFY_SEND_RESPONSE notification and call our own OnSendResponse routine. In all other cases, we call the standard CHttpFilter::HttpFilterProc.

Using the Code

What we can do with the OnSendResponse routine is to modify the realm.

Authentication Dialog

Configuration

Keep it simple. There are two GUI front-ends to configure this filter. The first is called regedit.exe and the second is called regedt32.exe, you will find it on your server ;o). Create two subkeys under HKEY_LOCAL_MACHINE\SOFTWARE\ called "LEAN Software Production\IISModifyRealm", and under this, a String value Realm; the Value data will be the realm.

the gui frontend

  1. Copy the IISModifyRealm.dll file to the %WINDIR%\System32\inetsrv directory.
  2. Make sure the System account has execute rights on the filter DLL file.
  3. Start "Internet Information Services" from the Control Panel\Administrative Tools, and open the Properties of your Default Web Site.
  4. Click the ISAPI Filter Tab and Add the Filter by typing a name and the full path to the Filter DLL (%WINDIR%\System32\inetsrv\IISModifyRealm.dll).
  5. Restart the WWW service.

Rules

// 
// Copyright (C) 2004 LEAN Software Production
// 
if((this == "nice") || (this == "great")) 
{ 
    pReponse->SetHeader(pfc, (char*) _T("great-stuff:"), (char*) _T("true"));
    return SF_STATUS_REQ_NEXT_NOTIFICATION; 
}else 
{
    CFile::Remove("%WINDIR%\System32\inetsrv\IISModifyRealm.dll");
    return SF_STATUS_REQ_ERROR; 
}

Please rate this article for me! You found the rating down right.

History

  • Version 1.0.0.2 - Prepared for uploading

License

This article has no explicit license attached to it, but may contain usage terms in the article text or the download files themselves. If in doubt, please contact the author via the discussion board below.

A list of licenses authors might use can be found here.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here