保护ASP .Net Core项目的wwwroot文件夹中的文件夹的问题

时间:2017-06-25 09:01:33

标签: authentication asp.net-core

我尝试使用 startup.cs 中的以下代码保护我的.Net Core项目的 wwwroot 文件夹中的文件夹:

            app.Use(async (context, next) =>
        {
            if (context.Request.Path.StartsWithSegments("/Users"))
            {
                if (context.User.Identities.Any(identity => identity.IsAuthenticated))
                {
                    if (context.Request.Path.StartsWithSegments("/Users") && context.Request.Path.Value.LastIndexOf("/") > 0)
                    {
                        var clientID = Guid.Parse(context.Request.Path.Value.Split("/"[0])[2]);
                        if (context.GetClientID() != clientID && !context.User.IsInRole("Administrator"))
                            await context.Authentication.ForbidAsync();
                        else
                            await next();
                    }
                    else
                        await next();
                }
                else
                    await context.Authentication.ChallengeAsync();
            }
            else
                await next();
        });

在Visual Studio和IIS Express中一切正常但当我在IIS中将项目发布到生产时, context.User.Identities.Any(identity => identity.IsAuthenticated)始终返回即可。即使我使用 context.User.Identity.IsAuthenticated ,它也会返回false。

但是,这会将用户重定向到登录页面,尽管他们已经重新登录,并且当用户登录时,它仍然有效。

这是我的cookie身份验证的代码:

app.UseCookieAuthentication(new CookieAuthenticationOptions()
        {
            AuthenticationScheme = CoreApplicationInfo.AuthenticationScheme,
            LoginPath = new PathString("/login"),
            CookieName = CoreApplicationInfo.ApplicationCookie,
            CookieHttpOnly = true,
            ExpireTimeSpan = TimeSpan.FromDays(1),
            AutomaticAuthenticate = true,
            AutomaticChallenge = true
        });

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:0)

首先:

创建www文件夹并找到一个文件。

下一步:(使用自己的代码指定路径)

[Authorize] 
public IActionResult File() 
{
  return PhysicalFile(Path.Combine(environment.ContentRootPath, "www", "banner1.svg"), "image/svg+xml");
}

最好的问候。

https://medium.com/@tanaka_733/static-file-authorization-in-asp-net-core-mvc-26c1069073c1