相关疑难解决方法(0)

如何在IIS 7.5上使用ASP.NET表单身份验证保护静态文件?

我有一个在共享主机上使用ASP.NET 4.0运行在IIS 7.5服务器上的网站,但完全信任.

该站点是一个基本的"文件浏览器",允许访问者登录并显示可用的文件列表,显然,下载文件.静态文件(主要是pdf文件)位于名为data的站点上的子文件夹中,例如http://example.com/data/ ...

该站点使用ASP.NET表单身份验证.

我的问题是:如何让ASP.NET引擎处理数据文件夹中静态文件的请求,以便ASP.NET对文件请求进行身份验证,并且用户无法深度链接到文件和抓取他们不被允许的文件?

最好的问候,埃吉尔.

asp.net authentication iis-7 iis-7.5

34
推荐指数
5
解决办法
3万
查看次数

捕获对 Web Api 2.0 的所有请求,无论是否映射

我有一个正在运行的 Web API 2.0 localhost:4512,我想拦截对域发出的所有请求,localhost:4512无论它们是否由特定路由处理。例如,我想捕获对localhost:4512/abc.dfsada或的请求localhost:4512/meh/abc.js

我已经使用 DelegatingHandler 尝试过此操作,但不幸的是,这只拦截对处理的路由发出的请求:

public class ProxyHandler : DelegatingHandler
{
    private async Task<HttpResponseMessage> RedirectRequest(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        var redirectLocation = "http://localhost:54957/";
        var localPath = request.RequestUri.LocalPath;
        var client = new HttpClient();
        var clonedRequest = await request.Clone();
        clonedRequest.RequestUri = new Uri(redirectLocation + localPath);

        return await client.SendAsync(clonedRequest, HttpCompletionOption.ResponseHeadersRead, cancellationToken);
    }

    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        return RedirectRequest(request, cancellationToken);
    }
}
Run Code Online (Sandbox Code Playgroud)

在 WebConfig.cs 中:

 config.MessageHandlers.Add(new ProxyHandler());
 config.MapHttpAttributeRoutes();
 config.Routes.MapHttpRoute( …
Run Code Online (Sandbox Code Playgroud)

c# actionfilterattribute asp.net-web-api delegatinghandler

5
推荐指数
1
解决办法
2803
查看次数