繁体   English   中英

在ASP.Net Web窗体中动态创建单个用户文件夹

[英]Dynamically create individual user folders in ASP.Net Web Forms

我在Visual Studio中使用Web表单模板-具有默认的SQL数据库成员身份-创建了一个ASP.Net网站(在VS 2015和VS 2017中复制)。 我熟悉动态创建文件夹,但是不熟悉我想要实现的范围。 我试图做到的,是动态创建只有一个单独用户访问的文件夹。 理想情况下,这应在单个用户注册其帐户时正确进行。

为了创建个人用户可以访问的文件夹,我必须对网站进行哪些更改?

这是我通常用于创建文件夹的基本代码:

protected void CreateUser_Click(object sender, EventArgs e)
{
    var manager = new UserManager();
    var user = new ApplicationUser() { UserName = UserName.Text };
    IdentityResult result = manager.Create(user, Password.Text);
    if (result.Succeeded)
    {
        IdentityHelper.SignIn(manager, user, isPersistent: false);
        IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
        string name = user.UserName;
        string foldername = "~/" + name + "Folder/";
        string johndoefolderpath = Server.MapPath(foldername);
        if (!Directory.Exists(johndoefolderpath))
        {
            Directory.CreateDirectory(johndoefolderpath);
        }
        else
        {
            ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Directory already exists.');", true);
        }
    }
    else
    {
        ErrorMessage.Text = result.Errors.FirstOrDefault();
    }
}

我假设您正在引用NTFS权限。 您的问题是,当您创建文件夹时,它是使用创建该文件夹的帐户的权限创建的-可能不是您正在创建该文件夹的用户,因为要实现此目的,每个潜在用户都需要对该文件夹创建权限。 不好的安全习惯。

因此,您需要做的就是像上面一样创建文件夹,然后更改对创建的文件夹的权限以为该用户添加写权限。 查看FileSystemAccessRule类,了解如何处理分配这些权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM