在IIS 7中,我尝试拒绝所有用户访问扩展名为.xml的所有文件.
我在web.config文件中尝试了以下设置:
<location path="*.xml">
<system.web>
<authorization>
<deny users="*"/>
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
但随后获取任何文件都会导致内部服务器错误.
它可以工作,如果我拒绝访问单个文件,但这个解决方案不会给我太多,因为我不提前知道所有.xml文件.
我在Azure上使用以下Web.config托管Web应用程序:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".text" mimeType="text/plain" />
<clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这有效,但我想通过扩展来改变缓存时间.我想将.html文件的最大年龄设置为1天,将其他所有文件的最大年龄设置为365天.原因是html中的所有资产都有其文件名在更改时加速并且是从CDN提供的,因此它们永远不需要过期,但是html页面本身需要始终保持新鲜,以便用户可以看到新内容.
我看到该<location>元素允许将Web.config过滤到特定位置,但我没有看到将其限制为某些扩展的方法.
请注意,我不要求能够做到这一点在Web.config:任何可能的手段与Azure的Web应用程序的罚款.
我正在使用MVC进行表单身份验证,我需要对我的一个控制器进行身份验证旁路,是否可以绕过Cotroller(s)/ Action的身份验证.我已经通过ASP.NET MVC Forms身份验证和未经身份验证的控制器操作,但我不想限制用户/角色的任何操作,我想匿名允许它.
任何人都可以帮助这方面.
我创建了一个 mvc 应用程序,我不想对应用程序中的一项功能进行身份验证。我希望用户能够在不登录的情况下从 URL 打开页面。现在,如果我输入 URL 直接打开该功能,那么它将带我进入登录页面。我想在一项功能中绕过身份验证过程。我在 web.config 中尝试了以下代码。
<location path="ControllerName">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
我还向控制器的某些操作添加了 [AllowAnonymous] 属性。
以下代码是我在 web.config 中编写的用于身份验证的代码。
<modules runAllManagedModulesForAllRequests="true">
<remove name="FormsAuthentication"/>
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/>
<remove name="AuthorisationModule"/>
<add name="AuthorisationModule" type="ProjectName.AuthorisationModule(which is for autentication), Project Name"/>
</modules>
Run Code Online (Sandbox Code Playgroud)