我在项目中有一个名为protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RNCardViewPackage()
);
}
的文件夹,每个用户都有一个单独的文件夹。样本文件夹结构;
archive
我不希望用户访问其他用户的文件夹和文件。我还想防止未登录的用户访问Archive(Folder) => User1(Folder) => other folders => files
Archive(Folder) => User2(Folder) => other folders => files ...
文件夹及其内容。
我该怎么做?
答案 0 :(得分:0)
在操作系统级别创建权限(文件/文件夹级别的所有权)可能很麻烦。如果决定在操作系统级别上进行此操作,则需要对用户进行域身份验证/ Windows身份验证(因此,您需要使用Windows或Active Directory身份验证)
然后,您可以轻松地将所有权授予特定的文件/文件夹,而其他任何人(其他非管理员用户)都无法访问它们
另一方面,您可以决定在应用程序层上创建此机制。在这种情况下,您只需要使用提升的用户身份来模拟您的应用程序,以便您可以创建文件/文件夹。之后,您需要在应用程序级别上创建机制,以识别哪些用户有权访问位置(文件夹)。为此,我本人选择使用缓存的数据库表。
答案 1 :(得分:0)
对于Static file authorization
,您可以参考Static file authorization。
对于另一种选择,您可以编写自己的中间件以检查之前 app.UseStaticFiles();
的身份。
app.Map("/Archive", subApp => {
subApp.Use(async (context, next) =>
{
if (!context.User.Identity.IsAuthenticated)
{
context.Response.StatusCode = StatusCodes.Status401Unauthorized;
}
else if(context.Request.Path.StartsWithSegments("/Archive/User1") && context.User.Identity.Name != "User1")
{
context.Response.StatusCode = StatusCodes.Status401Unauthorized;
}
});
});
app.UseStaticFiles();