配置IIS或Web.config仅提供特定文件夹中的所有文件

时间:2015-05-17 19:30:53

标签: c# asp.net-mvc file asp.net-mvc-5

我正在开发一个普通MVC项目的CDN服务器。但是,在项目文件夹中,假设我有public class ChangePasswordBindingModel { [Required] [DataType(DataType.Password)] [Display(Name = "Current password")] public string OldPassword { get; set; } [Required] [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] [DataType(DataType.Password)] [Display(Name = "New password")] public string NewPassword { get; set; } [DataType(DataType.Password)] [Display(Name = "Confirm new password")] [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] public string ConfirmPassword { get; set; } } 文件夹,并且我希望每个人都可以访问其中的任何文件,任何文件扩展名和CDN文件夹。也就是说,我不希望公开我的CDN文件或web.config文件夹。

有没有办法在不使用自定义ViewsController的情况下执行此操作?

编辑:按照规定,我在IIS或Web.config中寻找一种方法,或者在Controller或RouteHandler中编写代码的其他地方,所以它不是重复的。

根据David Gunderson的回答,这是我的web.config,允许CDN文件夹:

RouteHandler

1 个答案:

答案 0 :(得分:2)

您可以在网络配置中配置网站特定子目录的位置设置:

https://msdn.microsoft.com/en-us/library/ms178692%28v=vs.140%29.aspx

如果放在root web.config中,以下内容将授予所有用户访问CDN文件夹内容的权限。即使您为网站的其余部分启用了表单身份验证,它也会授予对匿名用户的访问权限:

    <location path="CDN">
        <system.web>
            <authorization>
                <allow users="*"/>
            </authorization>
        </system.web>
    </location>