2016-09-29 3 views
0

Я искал какое-то время и не смог найти это. Как я могу настроить свою программу на запись или обновление файла у нескольких пользователей, но только одной группе разрешено открывать чтение того, что находится в папке?Права на папку

class Log_File 
    { 
    string LogFileDirectory = @"\\server\boiseit$\TechDocs\Headset Tracker\Weekly Charges\Log\Log Files"; 
    string PathToXMLFile = @"\\server\boiseit$\scripts\Mikes Projects\Headset-tracker\config\Config.xml"; 
    string AdditionToLogFile = @"\Who.Did.It_" + DateTime.Now.Month + "-" + DateTime.Now.Day + "-" + DateTime.Now.Year + ".txt"; 
    XML XMLFile = new XML(); 

public void ConfigCheck() 
    { 
     if (!File.Exists(PathToXMLFile)) 
     { 
     XMLFile.writeToXML(PathToXMLFile, LogFileDirectory + AdditionToLogFile); 
     } 
    } 
public void CreateLogFile() 
    { 

     if (Directory.GetFiles(LogFileDirectory).Count() == 0) 
     { 
      XMLFile.writeToXML(PathToXMLFile, LogFileDirectory + AdditionToLogFile); 
      CreateFileOrAppend(""); 
     } 
     else if (!File.Exists(XMLFile.readingXML(PathToXMLFile))) 
     { 
      XMLFile.writeToXML(PathToXMLFile, LogFileDirectory + AdditionToLogFile); 
      CreateFileOrAppend(""); 
     } 
     else 
     { 
      FileInfo dateOfLastLogFile = new FileInfo(XMLFile.readingXML(PathToXMLFile)); 
      DateTime dateOfCreation = dateOfLastLogFile.CreationTime; 

      if (dateOfLastLogFile.CreationTime <= DateTime.Now.AddMonths(-1)) 
      { 
       XMLFile.writeToXML(PathToXMLFile, LogFileDirectory + AdditionToLogFile); 
       CreateFileOrAppend(""); 
      } 
     } 

    } 

    public void CreateFileOrAppend(string whoDidIt) 
    { 
     using (IsolatedStorageFile storage = IsolatedStorageFile.GetStore((IsolatedStorageScope.Domain | IsolatedStorageScope.Assembly | IsolatedStorageScope.User), null, null)) 
     { 
      using (StreamWriter myWriter = new StreamWriter(XMLFile.readingXML(PathToXMLFile), true)) 

      { 
       if (whoDidIt == "") 
       { 

       } 
       else 
       { 
        myWriter.WriteLine(whoDidIt); 
       } 
      } 
     } 

     } 

Это мой путь, куда ему нужно идти. У меня есть специальное разрешение на открытие и запись в папку, но у моих коллег нет. Я не позволяю им иметь это разрешение.

Если я где создать базу данных, как бы я изменить этот код

LoggedFile.CreateFileOrAppend(Environment.UserName.ToUpper() + "-" + Environment.NewLine + "Replacement Headset To: " + AgentName + Environment.NewLine + "Old Headset Number: " + myDatabase.oldNumber + Environment.NewLine + "New Headset Number: " + HSNumber + Environment.NewLine + "Date: " + DateTime.Now.ToShortDateString() + Environment.NewLine); 

Мне нужно это, чтобы вытащить текущий пользователь, агенты называют, что в настоящее время влияет на старую гарнитуру и новую гарнитуру, и времени это имело место.

ответ

0

Во время создания файла вы должны установить правила доступа для достижения ваших требований. ,

File.SetAccessControl(string,FileSecurity) 

Ниже ссылка имеет пример https://msdn.microsoft.com/en-us/library/system.io.file.setaccesscontrol(v=vs.110).aspx

также «FileSecurity» объект класса, который является входным параметром, имеет функции, чтобы установить правила доступа, включая контроль уровня группы. Ниже есть ссылка примера https://msdn.microsoft.com/en-us/library/system.security.accesscontrol.filesecurity(v=vs.110).aspx

+0

Так что я собираюсь сделать это как база данных, но несколько таблиц. Как установить строку ниже в базу данных SQL? 'LoggedFile.CreateFileOrAppend (Environment.UserName.ToUpper() + "-" + Environment.NewLine + "Сменная гарнитура To:" + имя_агента + среда.NewLine + "старый номер гарнитуры:" + myDatabase.oldNumber + Environment.NewLine + " Новый номер гарнитуры: «+ HSNumber + Environment.NewLine +» Дата: «+ DateTime.Now.ToShortDateString() + Environment.NewLine); Это всего лишь один пример того, что мне нужно для файла журнала для записи – user6840698

+0

Извините. Я не понял тебя. Не могли бы вы дать еще несколько намеков? – Naidu

+0

Я понял, что вы собираетесь добавить фрагмент кода вызова функции в таблицу SQL. Если это так, я не имею на это большой идеи. Но правила безопасности, вы можете добавить в свой исходный код C#, как только вы создадите файл. – Naidu

0

Этот вопрос будет открыт под новым вопросом, так как я собираюсь взять другой маршрут для записи данных мне нужно Спасибо всем за помощь

Смежные вопросы