WNetAddConnection2 ошибка удаленного сервера 1219 - PullRequest
0 голосов
/ 05 июля 2019

Я использую приложение веб-формы. Моему приложению нужно найти файл, найденный на удаленном сервере, прочитать этот файл и извлечь определенный абзац. Моё приложение работало идеально, и я начал получать сообщение об ошибке 1219.

В соответствии с моим исследованием я обнаружил, что пользователь не может иметь несколько подключений к удаленному серверу, используя одну и ту же учетную запись. Мое приложение сейчас использует одну учетную запись пользователя для подключения к удаленному серверу.

Мой вопрос: что произойдет, когда несколько пользователей будут использовать приложение и одновременно подключаться к удаленному серверу, и как мне изменить свой код, чтобы он работал?

Примечание. В примере кода для доступа к удаленному серверу используется только учетная запись администратора, и для меня это оптимальное решение.Пользователи проходят проверку подлинности с использованием ADFS, и при необходимости я могу изменить учетную запись администратора, чтобы использовать учетную запись пользователя по умолчанию для входа в качестве учетных данных.

public string networkPath = @"\\file:\\my-server\SPShared\";

    NetworkCredential credentials = new NetworkCredential(@"DOmainname\Administrator", "Password");

    public string myNetworkPath = string.Empty;

    public ConnectToSharedFolder(string networkName, NetworkCredential credentials)
    {
        _networkName = networkName;

        var netResource = new NetResource
        {
            Scope = ResourceScope.GlobalNetwork,
            ResourceType = ResourceType.Disk,
            DisplayType = ResourceDisplaytype.Share,
            RemoteName = networkName
        };

        var userName = string.IsNullOrEmpty(credentials.Domain)
            ? credentials.UserName
            : string.Format(@"{0}\{1}", credentials.Domain, credentials.UserName);

        var result = WNetAddConnection2(
            netResource,
            credentials.Password,
            userName,
            0);

        if (result != 0)
        {
            throw new Win32Exception(result, "Error connecting to remote share");
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...