SOAP にて 401 Unauthorizedエラーが発生する

お世話になります。

パッケージ版のGaroonにてAPI呼び出しを試しています。

 

VisualStudio2017でガルーンAPIを使ってメッセージを送ってみるhttps://qiita.com/HAGITAKO/items/b684f4e31552e5a5db69

上記を参考にし、APIを呼び出したところ401エラーが発生します。

 

ガルーンのエラーならば何らかのガルーンのコードとともにレスポンスが返ってくる気がしますので、IIS上の設定と思うのですが。

アクセス権限、実行権限等のIIS上の設定について何か情報無いでしょうか。

 

 

自己解決しました。

APIを呼ぶ前に「UseDefaultCredentials」をTrueにすれば呼べました。

 

            AddressBinding addressAPI = new AddressBinding();

            /* ここから */
            //--------------------------------------------------------
            // ヘッダ情報追加
            //--------------------------------------------------------
           
            // Garoon共通のSOAPヘッダー
            ActionElement actionElement = new ActionElement();
            UsernameTokenElement userNameTokenElement = new UsernameTokenElement();
            SecurityElement securityElement = new SecurityElement();
            TimestampElement timeStampElement = new TimestampElement();

            // 呼び出すAPI名
            actionElement.actionValue = “AddressGetSharedBooksById”;

            // アクセス者
            userNameTokenElement.Username = Properties.Settings.Default.User; // GaroonのログインID
            userNameTokenElement.Password = Properties.Settings.Default.Password; // ログインパスワード
            securityElement.usernameToken = userNameTokenElement;

            // タイムスタンプ
            timeStampElement.Created = DateTime.UtcNow;
            timeStampElement.Expires = timeStampElement.Created.AddDays(8);

            // ヘッダー設定
            addressAPI.action = actionElement;
            addressAPI.security = securityElement;
            addressAPI.timeStamp = timeStampElement;
           
            /* ここまで */

            string[] param = {“6”};

            try
            {
_                 addressAPI.UseDefaultCredentials = true; _

                BookType[] booktype = addressAPI.AddressGetSharedBooksById(param);
                booktype.ToString();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                MessageBox.Show(ex.Message);
            }