Динамически создавать отдельные пользовательские папки в ASP.Net Web Forms - PullRequest
0 голосов
/ 13 октября 2018

Я создал веб-сайт ASP.Net с шаблоном веб-форм - со своей базой данных SQL по умолчанию для членства - в Visual Studio (копии в 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();
    }
}

1 Ответ

0 голосов
/ 13 октября 2018

Я полагаю, вы ссылаетесь на разрешения NTFS.Ваша проблема заключается в том, что когда вы создаете папку, она создается с разрешениями учетной записи, которая ее создала - вероятно, это НЕ пользователь, для которого вы создаете папку, поскольку для этого каждому потенциальному пользователю потребуется создать разрешения для этой папки.,НЕ является хорошей практикой безопасности.

Итак, вам нужно создать папку, как вы делали выше, а затем изменить разрешения для созданной папки, чтобы добавить разрешения на запись для этого пользователя.Взгляните на класс FileSystemAccessRule, чтобы узнать, как обрабатывать назначение этих разрешений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...