如果您的應用程序池在經典模式下運行,你可以做到以下幾點。您必須爲每個要處理的文件擴展名重複這些步驟,但我在此處使用.html
。
首先,頁面生成提供添加到Web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<compilation>
<buildProviders>
<add type="System.Web.Compilation.PageBuildProvider" extension=".html"/>
</buildProviders>
</compilation>
</system.web>
</configuration>
然後添加一個頁面處理廠:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<httpHandlers>
<add type="System.Web.UI.PageHandlerFactory" path="*.html" verb="*"/>
</httpHandlers>
</system.web>
</configuration>
然後添加一個頁面處理程序:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness32" path="*.html" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" name="HtmlHandler-Classic-32" />
<add scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness64" path="*.html" verb="GET,HEAD,POST,DEBUG" name="HtmlHandler-Classic-64"/>
</handlers>
</system.webServer>
</configuration>
這對我有用。 (信用:http://www.ifinity.com.au/Blog/EntryId/66/How-To-301-Redirect-htm-or-html-pages-to-DotNetNuke-aspx-pages。)
謝謝喬爾。儘管如此。我沒有被允許在web.configs中使用不在網站根目錄的「身份驗證」部分,無論如何,它似乎與用戶一起工作。但是,當我有<允許角色=「xxx」/>時,我無法使其工作,他們不會進行身份驗證,但是如果我明確將用戶添加到允許列表並拒絕所有其他經過身份驗證的用戶,它就會起作用。 我在web服務器模塊部分缺少一些東西,以使其與角色以及用戶一起工作嗎? – 2010-05-27 15:09:47
呃,謝謝!這不應該很難弄清楚。現在爲我工作。 – 2013-05-15 19:02:41
這可以工作,但也可以阻止登錄頁面上使用的任何css/gif文件。任何方式讓這些展示? – eych 2013-12-14 14:52:17