プロジェクトの作成中に、SharePointサイトワークフロー2010で現在ログインしているユーザーを見つけようとしています。ユーザーに基づいて、現在のユーザーのプロジェクトマネージャーを取得したいと思います。現在のユーザー名を取得しようとするたびに、システムアカウントが与えられます。
別のユーザーとしてログインしようとしましたが、現在のユーザーとしてシステムアカウントを表示しています。
私は次のオプションを試しました:
SPUser user = workflowProperties.OriginatorUser;
SPUser user = SPContext.Current.Web.CurrentUser;
SPWeb web = SPContext.Current.Web;
SPUser user = web.CurrentUser;
SPContext.Current.Web.CurrentUser.LoginName;
しかし、すべてが失敗しました。それは何か間違ったことをしていると確信しています。正しい手順がわかりません。一部のプロシージャでは、オブジェクトのインスタンスまたはシステムアカウントの詳細に設定されていないnullまたはオブジェクト参照が表示されます。昇格されたアクセス許可を使用して、null値を取得しようとしたこともあります。
SPSecurity.CodeToRunElevated elevatedSubmit = new SPSecurity.CodeToRunElevated(delegate
{
//SPUser user = SPContext.Current.Web.CurrentUser;
//string strAssignedTo = user.Name;
string sspURL = "http://localhost/PWA/default.aspx";
SPSite site = new SPSite(sspURL);
SPWeb web = site.OpenWeb();
SPUser theUser = web.CurrentUser;
string strUserName = theUser.Name;
});
SPSecurity.RunWithElevatedPrivileges(elevatedSubmit);
ワークフローを介して現在のユーザーを取得する前に、SPUserまたはその他の変更としてユーザーを明示的に追加する必要がありますか?