私は現在、本番環境でこれを行っています。私の場合、通常の RSS リーダーがサイト上の RSS フィードに安全にアクセスできるようにするために MADAM が既にインストールされていたので、ソリューションは非常に簡単でした。
これを行う秘訣は、外部プロセスを使用して自動的に呼び出したいページの基本認証を有効にすることです。これにより、サイトに自動的にアクセスするための膨大な数の方法が可能になります。たとえば、この VBScript ファイルはメンテナンス URL を呼び出し、サーバーからの応答が正確かどうかをチェックしますSUCCESS
。
Option Explicit
Dim result
result = PerformMaintenance("http://www.mysite.com/MyController/RunCleanupScript")
WScript.Quit(result)
Function PerformMaintenance(URL)
Dim objRequest
Set objRequest = CreateObject("Microsoft.XmlHttp")
'I use a POST request because strictly speaking a GET shouldn't change anything on the server.
objRequest.open "POST", URL, false, "LimitedDaemonUser", "SecretDaemonPassword"
objRequest.Send
if (objRequest.ResponseText = "SUCCESS") Then
PerformMaintenance = 0
Else
PerformMaintenance = 1
End If
set objRequest = Nothing
End Function
基本認証は簡単に機能します。MADAMをプロジェクトに含めて、Web.config で構成するだけです。
これらの Web.config セクション/パラメーター (IIS6) を追加すると、標準の MembershipProvider を使用する場合、サンプル リクエストが機能するはずです。MyNamespace.MembershipUserSecurityAuthority
実際のクラスへの参照に変更するだけです。のソース コードMembershipUserSecurityAuthority
は、MADAM のデモ Web アプリケーションのApp_Code
フォルダーに含まれています。
<configuration>
<configSections>
<sectionGroup name="madam">
<section name="userSecurityAuthority" type="System.Configuration.SingleTagSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="formsAuthenticationDisposition" type="Madam.FormsAuthenticationDispositionSectionHandler, Madam" />
</sectionGroup>
</configSections>
<madam>
<userSecurityAuthority realm="MyRealm" provider="MyNamespace.MembershipUserSecurityAuthority, MyNamespace" />
<formsAuthenticationDisposition>
<discriminators all="false">
<discriminator inputExpression="Request.AppRelativeCurrentExecutionFilePath" pattern="~/MyController/RunCleanupScript$" type="Madam.RegexDiscriminator, Madam" />
</discriminators>
</formsAuthenticationDisposition>
</madam>
<system.web>
<httpModules>
<add name="FormsAuthenticationDisposition" type="Madam.FormsAuthenticationDispositionModule, Madam" />
<add name="AuthenticationModule" type="Madam.BasicAuthenticationModule, Madam" />
</httpModules>
</system.web>
</configuration>