Я нашел этот вопрос где-то в Интернете, столкнувшись с той же проблемой. С небольшим изменением я уже задал вопрос ниже.:: createFile winApi с ошибкой 5 (access_denied). Является ли shell-программированием или другим решением или любым намеком.
Вопрос:
Я хочу получить доступ к файлу на удаленном компьютере (10.10.20.30), но я не мог понять, как войти в эту машину в моей программе. Есть ли простой win api, который берет сетевой путь, учетные данные и возвращает дескриптор файла? Я просто хочу получить доступ к папке \ 10.10.20.30 \ share \ test.txt. Любое предложение будет полезно.
извините за то, что не очень ясно в смысле кодирования. Деталь: Я хотел получить доступ к файлу, который совместно используется в общей папке, но мне не разрешено разрешение. Я использую :: CreateFile, чтобы получить handel файла. Но в этом случае я получаю код ошибки 5 (ACCESS_DENIED). Мне нужно использовать учетные данные пользователя (моего клиента) (пароль пользователя) для доступа к файлу, который является общим. Мне просто нужен дескриптор файла. Скажите мне, если я ошибаюсь :: CreateFile нельзя использовать в этом случае, используя или изменяя атрибуты безопасности, как говорит MSDN. CreateFile игнорирует член lpSecurityDescriptor при открытии существующего файла. Я также думал об использовании оболочки Window, но не смог повторить решение.
проблема Подробнее * Ну, так же, как на удаленной машине, у меня нет разрешения EveryOne. Позвольте мне объяснить на примере. Предположим, что есть сеть с определенным доменом, у которого по крайней мере 3 компьютера позволяют говорить 5. Теперь там есть C1 (клиент), C2 (пункт назначения), C3, C4, C5. Теперь в этом случае я создам файл (любой тип) на машине C2 и поместит его в папку MyFolder. Теперь сделайте это, и после этого удалите EveryOne. После этого добавьте C5 в качестве пользователя для доступа к нему. Теперь вы можете написать какой-нибудь код с реализацией только :: CreateFile и запустить его как на машине C1 (клиент), так и на C5 (у нее есть разрешение). Вы увидите, что клиент (C1) получит ошибку 5, что означает ACCESS_DENIED, но C5 выполнит его и получит файл. ...... Теперь снова повторяю свой вопрос. Мне нужно получить дескриптор файла любыми способами через мой имя пользователя и пароль, и моя программа получит дескриптор из этого C1 машины .. *
Пожалуйста, советы мне заранее спасибо
:: CreateFile завершается с Access Denied является программирование оболочки или другое решение или намек
Возможно, вам нужно сначала использовать функцию [NetUseAdd] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa370645 (v = vs.85) .aspx). Это должно работать, если вы можете открыть «\\ 10.10.20.30 \ папку общего доступа» из проводника Windows. –
@MichaelWalz Мне не разрешено открывать его через проводник. см. проблему выше. – user2809792
Вы решили это? Есть ли простой win api, который берет сетевой путь, учетные данные и возвращает дескриптор файла? – AcidBurn