Проверьте, есть ли у группы IUSR разрешение на запись в папку

Я хочу проверить, есть ли у группы IUSER разрешение на запись в папку или нет с помощью кода. Чтобы проверить, что я вручную дал разрешение на запись в группу IUSR в моей папке:

Вот код, который я написал, чтобы проверить, что:

<%@ Page Language="C#" %>

<%@ Import Namespace="System.Collections.ObjectModel" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Security.Principal" %>
<%@ Import Namespace="System.Security.AccessControl" %>



<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {

        try
        {
            string FilePath = @"D:\\Shared";

            FileSystemSecurity security;
            if (File.Exists(FilePath))
            {
                security = File.GetAccessControl(FilePath);
            }
            else
            {
                security = Directory.GetAccessControl(Path.GetDirectoryName(FilePath));
            }


            foreach (AccessRule rule in security.GetAccessRules(true, true, typeof(NTAccount)))
            {
                Response.Write("<br/>");
                Response.Write(string.Format("Identity = {0}; Access = {1}",
                               rule.IdentityReference.Value, rule.AccessControlType));
            }


        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }

    }



</script>

Вот вывод:

Как видите, группа IUSR не входит в этот список.

Мой вопрос здесь заключается в том, что мне не хватает того, что мешает этой группе IUSR войти в этот список.

Нужно ли добавить какую-то специальную проверку для проверки разрешения IUSR?

1 ответ

Существует полезный пост на Server Fault относительно этого. Основная причина в том, что в IIS 7.5 (и, возможно, в IIS 7) все работники работают с идентификатором пула приложений: пользователь "IISAppPool PoolName", что является причиной, по которой группа IUSR не появляется в списке.

Я бы рекомендовал проверить группу apppool, а не IUSR. Затем попробуйте получить конкретного пользователя, а не группу, и проверьте права на чтение и запись, если вы успешно пройдете этот тест, все в порядке.

проверьте этот пост для справки.

Другие вопросы по тегам