C# 无法通过C模拟域用户

C# 无法通过C模拟域用户,c#,C#,我正在尝试模拟远程管理员用户,以便对远程Linux计算机上的文件执行修改。但由于访问路径被拒绝,我收到了错误消息。 但是,我可以通过putty使用命令手动执行此操作: sudo -S -u wtsnqa rm /path-to-file/ 任何帮助都是值得赞赏的 我的代码: SessionOptions sessionOptions = new SessionOptions { Protocol = Protocol.Sftp, HostName = "sj1slm612",

我正在尝试模拟远程管理员用户,以便对远程Linux计算机上的文件执行修改。但由于访问路径被拒绝,我收到了错误消息。 但是,我可以通过putty使用命令手动执行此操作:

sudo -S -u wtsnqa rm /path-to-file/
任何帮助都是值得赞赏的

我的代码:

SessionOptions sessionOptions = new SessionOptions
{
    Protocol = Protocol.Sftp,
    HostName = "sj1slm612",
    UserName = "userid",
    Password = "password",
    SshHostKeyFingerprint = "ssh-rsa 2048 fa:e9:58:24:1b:41:a3:15:63:0d:c0:72:41:5d:51:7a"
};

using (Session session = new Session())
{
    // Connect
    session.Open(sessionOptions);

    // Performing removing files from remote server via impersonation.......

    AppDomain.CurrentDomain.SetPrincipalPolicy(System.Security.Principal.PrincipalPolicy.WindowsPrincipal);
    using (WindowsIdentity Authorized_user = new WindowsIdentity("wtsnqa"))
    {
        using (WindowsImpersonationContext context = Authorized_user.Impersonate())
        {              

            File.Delete(@"\\sj1slm612\apps\instances\express_13000\configuration\standalone-full.xml");
            File.Delete(@"\\sj1slm612\apps\instances\query_13100\configuration\standalone-full.xml");
            File.Delete(@"\\sj1slm612\apps\instances\wppapi_13200\configuration\standalone-full.xml");
            File.Delete(@"\\sj1slm612\apps\instances\wppgui_13300\configuration\standalone-full.xml");

            Console.WriteLine("All config files removed from sj1slm612");
            Console.ReadLine();
            context.Undo();
        }

这似乎是..的副本。。然而,这也没有得到回答!确保您正在与管理员一起运行应用程序rights@USER_NAME:在我的代码中,我试图模拟具有管理员权限的用户wtsnqa。@RamanThakur在.net中,如果模拟失败,它不会给您错误。因此,你只需检查你是否能够模拟。只需在模拟后将当前用户名打印到日志或其他文本文件中,并检查它给你的名称。@RamanThakur如果此方法无法为你提供正确的用户名,则制作一个显示当前用户名的示例控制台应用程序,并使用你的代码启动它模仿