Abe*_*Abe 18 html asp.net iis-7 forms-authentication static-content
我在IIS7中使用表单身份验证来密码保护开发站点,但是当站点仅包含静态HTML文件+ login.aspx + web.config 时,身份验证似乎被绕过.
当我将文件重命名为.aspx时,我提示登录表单我没有做任何花哨的事情.我有一个非常简单的登录脚本,之后它应该重定向到index.html.
有什么建议?总而言之,整个站点使用HTML(目前)并且需要受密码保护.
<authentication mode="Forms">
<forms name="appNameAuth" path="/" loginUrl="~/login.aspx" defaultUrl="index.html" protection="All" timeout="525600">
<credentials passwordFormat="Clear">
<user name="[user]" password="[password]" />
</credentials>
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
Kel*_*sey 10
要通过表单身份验证来锁定HTML文件,您需要让它们由ASP.NET提供服务.您可以通过将所需的扩展名(例如.html,.htm等)与aspnet_isapi.dll相关联,在IIS中执行此操作.
一旦ASP.NET为这些文件提供服务,您就可以像任何aspx页面一样为它们指定权限.
有关更多信息,请参阅MSDN:
默认情况下,IIS处理静态内容本身 - 如HTML页面和CSS和图像文件 - 并且只在请求扩展名为.aspx,.asmx或.ashx的页面时才将请求移交给ASP.NET运行时.
但是,IIS 7允许集成IIS和ASP.NET管道.通过一些配置设置,您可以设置IIS 7以调用所有请求的FormsAuthenticationModule.此外,使用IIS 7,您可以为任何类型的文件定义URL授权规则.有关详细信息,请参阅IIS6和IIS7安全性之间的更改,Web平台安全性以及了解IIS7 URL授权.
简而言之,在IIS 7之前的版本中,您只能使用表单身份验证来保护ASP.NET运行时处理的资源.同样,URL授权规则仅适用于ASP.NET运行时处理的资源.但是使用IIS 7,可以将FormsAuthenticationModule和UrlAuthorizationModule集成到IIS的HTTP管道中,从而将此功能扩展到所有请求.
big*_*gtv 10
在IIS7中,如果要在表单身份验证下保护*.html或*.htm文件(或其他非.net扩展名),请将以下行添加到web.config:
<compilation>
<buildProviders>
<add extension=".html" type="System.Web.Compilation.PageBuildProvider" />
<add extension=".htm" type="System.Web.Compilation.PageBuildProvider" />
</buildProviders>
</compilation>
Run Code Online (Sandbox Code Playgroud)
和
<system.webServer>
<handlers>
<add name="HTML" path="*.html" verb="GET, HEAD, POST, DEBUG" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" />
<add name="HTM" path="*.htm" verb="GET, HEAD, POST, DEBUG" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" />
</handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22233 次 |
| 最近记录: |