@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

Microsoft Office SharePoint Serverにプログラムからユーザ登録

1
投稿者投稿内容
ともき
会議室デビュー日: 2005/05/22
投稿数: 5
投稿日時: 2007-10-23 10:56
Microsoft Office SharePoint Serverにプログラムからユーザ登録

目的:Microsoft Office SharePoint Server 2007に、VB.netまたは
Javaを使用してプログラムからユーザを登録したいと考えています。

状況:ネットで情報を調べたところ、下記の2サイトを発見しました。

@Windows SharePoint Services Web サービスの紹介
http://msdn2.microsoft.com/ja-jp/library/ms458094.aspx
A[方法] ユーザーをグループに追加する (単一ユーザーを追加する のところ)
http://msdn2.microsoft.com/ja-jp/library/ms412944.aspx

@の方法で参照の追加をしようとしたところ、
http://MyServer/_vti_bin/Web_Service.asmx
はエラーが出て参照できなかったため、
http://MyServer/_vti_bin/UserGroup.asmx
を登録しました。
Aの方法でコーディングを行い、AddUserToGroupメソッドを
実行してみたところ、下記エラーが出てしまいました。
'System.Web。Services.Protocols.SoapException'の初回例外がSystem.Web.Services.dllで発生しました。
それ以上の情報が無いため、IISの設定(該当サイトのプロパティの
ホームディレクトリの設定に「スクリプトソースアクセス」「読み取り」を追加)
を変更してみましたが、状況が変わりません。

質問:
1.上記の方法で考えられる問題点はありますでしょうか?
2.別の方法でプログラムからSharePointにユーザを登録する方法は
ありますでしょうか。

以上、よろしくお願いいたします。

答えてねっとに投稿したのですが、回答が頂けなかったので
こちらにも投稿しました。
よこけん
大ベテラン
会議室デビュー日: 2006/01/31
投稿数: 216
投稿日時: 2007-10-23 18:20
> .上記の方法で考えられる問題点はありますでしょうか?

SoapExceptionのDetailsプロパティの中身にも、有力なエラー情報は書かれていませんか?
とりあえず思いつくのは、

1.WebサービスのCredentialsプロパティに資格情報を設定していないため
2.Webサービスへのアクセスアカウントが、SharePoint上でユーザーを追加する権限を持っていない

のどちらかです。
(1は、確かSoapExceptionではなくセキュリティ系の例外が発生したと思うので違うかもしれません。)


> 2.別の方法でプログラムからSharePointにユーザを登録する方法は
> ありますでしょうか。

リモートではなく、SharePointが配置されているマシーン上で動作するコードであれば、
Microsoft.SharePoint.dllを使用してプログラム可能です。
SPWebクラスのAllUsersプロパティのAddメソッドを使用して、ユーザーを追加できます。


SPWeb.AllUsers プロパティ (Microsoft.SharePoint)
http://msdn2.microsoft.com/ja-jp/library/microsoft.sharepoint.spweb.allusers.aspx

SPUserCollection.Add メソッド (Microsoft.SharePoint)
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=41816&forum=7&0

_________________
C#と諸々
ともき
会議室デビュー日: 2005/05/22
投稿数: 5
投稿日時: 2007-10-23 21:44
回答ありがとうございます!
結論としては、無事に登録することができました。

挙げていただいたエラー原因の1.および2.については環境を確認しましたが
設定に問題はありませんでした。

> SoapExceptionのDetailsプロパティの中身にも、有力なエラー情報は書かれていませんか?

エラーの見方がわかっておらず、エラーオブジェクトのDetailプロパティを
改めて確認いたしました。

SoapExceptionのDetail.InnerTextに
「ユーザーが存在しないか、一意ではありません。0x81020054」
といったエラーが表示されていました。
ActiveDirectoryにユーザを登録し、そのユーザ名およびログインIDを
引数に指定したところ、エラーは発生せず、登録することができました。
(ADに登録されていないユーザも登録できると考えていたのですが、
 運用上SharePointユーザはADのユーザとなるので問題なさそうです。)

その他の方法等挙げていただき、ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)