Привет, хотел создать приложение, которое дало бы мне привилегии для установки приложений с пользователем, у которого есть такие доступ. Важно, чтобы пользователь с повышенными привилегиями зашел из приложения, и это то, что я пытался сделать, но кажется, что он не работает. < /P>
Итак То, что я сделал, это использовало эту библиотеку:
http://impersonation.codeplex.com/ написан P>
Все работает нормально, пока я не попытаюсь фактически запустить приложение с повышенным доступом пользователя, если я не вхожу в систему с пользователем администратора, то мое приложение просто дает мне исключение, когда он говорит, что Доступ отрицается < /strong>, когда я вхожу в систему с пользователем, у которого есть эти привилегии, это дает мне неизвестное исключение ошибки , так что я задаюсь вопросом, почему это. > Однако, когда я пытаюсь запустить файл, который имеет у моего текущего пользователя Доступ к, он работает просто отлично.
Теперь, вероятно, здесь нет никакого обходного пути, если я не запускаю это приложение как Service , но я просто Хочу убедиться .
gui Application
(источник: upload.ee)
< P> Snapshot
Полный источник:
Код: Выделить всё
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using Iuf.Network.Authentication;
namespace AccessPool
{
public partial class Form1 : Form
{
Impersonation UserAccess;
Process FileProcess;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void btnButton_Click(object sender, EventArgs e)
{
UserAccess = new Impersonation(txtUsername.Text, txtPassword.Text, "ametikool.local");
try
{
UserAccess.ImpersonateUser();
}
catch (Exception ImpersonateException)
{
MessageBox.Show(ImpersonateException.ToString());
}
finally
{
MessageBox.Show("Access granted!");
btnOpenFile.Enabled = true;
}
}
private void btnOpenFile_Click(object sender, EventArgs e)
{
OpenFileDialog FileDialogObject = null;
try
{
FileDialogObject = new OpenFileDialog();
FileDialogObject.ShowDialog();
}
catch (Exception FileDialogException)
{
MessageBox.Show(FileDialogException.ToString());
return;
}
finally
{
txtFilePath.Text = FileDialogObject.FileName;
}
}
private void btnRun_Click(object sender, EventArgs e)
{
try
{
FileProcess = new Process();
FileProcess.StartInfo.FileName = txtFilePath.Text;
FileProcess.Start();
}
catch (Exception FileProcessException)
{
MessageBox.Show(FileProcessException.ToString());
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/752 ... in-c-sharp
Мобильная версия