Приветствую всех!
Help!) В двух словах, пользователь запускает прогу на своём компе, проходит доменную авторизацию.
Все его действия должны логироваться. На этапе вызова функции лог-я вылетает исключение:
************ Текст исключения ************** System.DirectoryServices.Protocols.DirectoryOperationException: Сервер не может обработать запросы каталогов. в System.DirectoryServices.Protocols.ErrorChecking.CheckAndSetLdapError(Int32 error) в System.DirectoryServices.Protocols.LdapSessionOptions.FastConcurrentBind() в System.DirectoryServices.AccountManagement.CredentialValidator.BindLdap(NetworkCredential creds, ContextOptions contextOptions) в System.DirectoryServices.AccountManagement.CredentialValidator.Validate(String userName, String password) в System.DirectoryServices.AccountManagement.PrincipalContext.ValidateCredentials(String userName, String password) в DV.Form1.button1_Click(Object sender, EventArgs e) в System.Windows.Forms.Control.OnClick(EventArgs e) в System.Windows.Forms.Button.OnClick(EventArgs e) в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) в System.Windows.Forms.Control.WndProc(Message& m) в System.Windows.Forms.ButtonBase.WndProc(Message& m) в System.Windows.Forms.Button.WndProc(Message& m) в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Данное исключение срабатывает только у тех пользователей, у которых нет прав локального админа.
Проверял на пользователях с правами локального админа, у них все ок.
Внимание, вопрос:
Почему программно файлы не создаются, а руками создавать папки и файлы в ОС Windows (через проводник) получается?
Также в app.manifest указывал запуск от админа, результат отрицательный.
Код:
PrincipalContext prCont = new PrincipalContext(ContextType.Domain, "kakoytodomen.ru");
string pathLog = @"C:\Users\" + SystemInformation.UserName + @"\Documents\dvlog.log"; //Путь к log файлу
//Функция записи в лог (в зависимости от переданного пути).
public void ToLogCommon(string text, string path)
{
Encoding enc = Encoding.GetEncoding(1251);
try
{
StreamWriter f_out = new StreamWriter(@"" + path, true, enc);
f_out.WriteLine(DateTime.Now.ToLocalTime() + " " + text);
f_out.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
//Кнопка Enter.
public void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "")
{
return;
}
else
{
if (prCont.ValidateCredentials(textBox1.Text.Trim(), textBox2.Text.Trim()))
{
if (IsUserGroupMember(textBox1.Text.Trim(), "DV_DVID"))
{
form2.ToLogCommon("Вход выполнен: " + textBox1.Text, form2.pathLog);
form2.Show();
this.Opacity = 0;
}
else
{
form2.ToLogCommon("Данного пользователя: " + textBox1.Text.Trim() + " нет в группе DV_DVID. Доступ запрещён.\r\n", form2.pathLog);
MessageBox.Show("Доступ запрещён!\r\nДанного пользователя: " + textBox1.Text.Trim() + " нет в группе DV_DVID.\r\nНеобходимо оформить заявку в СПП.", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
form2.ToLogCommon("Логин или пароль введен неверно! Проверьте правильность введённых данных.\r\n", form2.pathLog);
MessageBox.Show("Логин или пароль введен неверно!\r\nПроверьте правильность введённых данных.", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
К примеру я беру значения из базыданных формирую класс и потом манипулирую им во всем приложении
Ошибка Процесс не может получить доступ к файлу, тк
Мне кажется, событие FormClosing можно использовать лишь в некоторых ограниченных ситуациях, таких как, например, запрос на подтверждение закрытия...