ユーザー名、日付、共有パスなどのデータを含む mysql データベースがあります。
アプリは、有効期限のある特定のユーザーに共有パスに読み取り/書き込み許可を与えることができ、そのすべてのデータが mysql に挿入されます。
各ループですべての行を読み取り、exp date = today の行が見つかった場合は、ユーザーを取得してパスを共有し、許可を削除します。
try
{
string MyConString =
"SERVER=localhost;" +
"DATABASE=permdata;" +
"UID=user;" +
"PASSWORD=pass;";
string sql = "SELECT expDate, user, sfolder FROM permuser";
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand cmdSel = new MySqlCommand(sql, connection);
MySqlDataAdapter da = new MySqlDataAdapter(cmdSel);
MySqlDataReader dr = cmdSel.ExecuteReader();
while (dr.Read())
{
foreach ( *row that exp. date = today)
{
*get user and share path
*myDirectorySecurity.RemoveAccessRule (user/share path)
}
}
connection.Close();
connection.Dispose();
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
Close();
}
どんなアイデアでもいいです、ありがとう
私はこれをやってしまう、マイケルに感謝..1
try
{
string MyConString =
"SERVER=localhost;" +
"DATABASE=permdata;" +
"UID=user;" +
"PASSWORD=pass;";
DataSet dataSet = new DataSet();
string sql = "SELECT key, fdate, user, perm, sfolder FROM permuser WHERE fdate=CURDATE()";
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand cmdSel = new MySqlCommand(sql, connection);
new MySqlDataAdapter(cmdSel).Fill(dataSet, "permuser");
foreach (DataRow row in dataSet.Tables["permuser"].Rows)
{
string fuser = row["user"].ToString();
string pathtxt = row["sfolder"].ToString();
DirectoryInfo myDirectoryInfo = new DirectoryInfo(pathtxt);
DirectorySecurity myDirectorySecurity = myDirectoryInfo.GetAccessControl();
string User = System.Environment.UserDomainName + "\\" + fuser;
myDirectorySecurity.RemoveAccessRule(new FileSystemAccessRule(User, FileSystemRights.Write | FileSystemRights.Read, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
PropagationFlags.None, AccessControlType.Allow));
myDirectoryInfo.SetAccessControl(myDirectorySecurity);
}
connection.Close();
connection.Dispose();
}
catch (MySqlException ex)
{
Console.WriteLine(ex.Message);
Environment.Exit(0);
}