我已经使用了一个面向经典ASP应用程序(托管在Windows-Server-2012 /IIS8上)的互联网,它使用匿名访问,我想转移到窗体身份验证。尽管它不是直接向前的,但按照目前的情况(使用Anon.Access设置),未经身份验证的用户(即尚未登录的用户)可以查看.pdf、.doc等文件,如果它们输入了文件的确切URL路径(即安全通过匿名方式)。
问题
我的设置和我尝试过的
Cookie是通过以下代码设置的
Response.Cookies("MyAuthCookie") = myGuid
Response.Cookies("MyAuthCookie").Expires = DateAdd("h", 6, Now())
Response.Cookies("MyAuthCookie").Path = "/"我试图通过.pdf授权限制对.doc、web.config文件的访问,如下所示
<location path="myProtectedFolder">
<system.web>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
</system.web>
</location>
<system.web>
<machineKey decryptionKey="XXXXXXXX99999999XXXXXXXX" validationKey="XXXXXXXX99999999XXXXXXXX" />
<authentication mode="Forms">
<forms name="MyAuthCookie" loginUrl="/index.asp" path="/" />
</authentication>
<authorization>
<allow users="*" />
</authorization>
</system.web>模块已配置如下
<modules>
<remove name="FormsAuthentication" />
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
<remove name="UrlAuthorization" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />
<remove name="DefaultAuthentication" />
<add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" />
</modules>...and处理程序如下(由ISAPI处理)
<handlers>
<add name="pdfs64" path="*.pdf" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="File" requireAccess="Read" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
<add name="pdfs" path="*.pdf" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="File" requireAccess="Read" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
</handlers>其他值得注意的领域
任何帮助都将不胜感激。
发布于 2015-09-12 02:22:42
我在FormsAuthentication中创建了一个真正的HttpModule cookie (模块配置是模块部分)。这就容纳了允许/拒绝规则。
https://stackoverflow.com/questions/30433341
复制相似问题