6

SharePoint 2010は、現在のユーザーのアカウント名をグローバルにアクセス可能なJSオブジェクトのどこかに保存しますか?

私が見つけることができるすべてのソリューションには、ajax Webサービス呼び出しのバリエーションが含まれています。これは、些細な情報にアクセスするための非常に重いソリューションのようです。

簡単にアクセスできるもの:

  • から現在のユーザーIDを取得します__spUserId
  • リボンのhtmlをスクレイピングして、現在のユーザー名を取得します(例$('#zz17_Menu').text():)

しかし、これらはどちらもアカウント名ではありません。

私がしたくないこと:

  • GetUserProfileByNameへのSOAP呼び出しで現在のユーザー情報を取得します
  • ../_layouts/userdisp.aspxに対してAjax呼び出しを行うことにより、現在のユーザー情報を取得します
4

2 に答える 2

5

これに出くわした他の人のために、1年後にその方法を見つけました.

マスター ページに SPSWC を登録します(Randy Drisgill のスターター マスターを使用している場合は、既に存在します)。

<%@ Register Tagprefix="SPSWC" Namespace="Microsoft.SharePoint.Portal.WebControls" Assembly="Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

次に、プロパティ (例: UserName) にアクセスする前に、データを取得します。

<SPSWC:ProfilePropertyLoader runat="server"/>

次に、プロパティの 1 つにアクセスします。TitleMode を使用して<script>要素に埋め込むことをお勧めします。

<script>
  var username = '<SPSWC:ProfilePropertyValue PropertyName="UserName" TitleMode="true" runat="server"/>';
</script>

このPasteBin デモに示すように、名前、姓、ユーザー名、プロフィール写真、ステータスなどのいくつかのプロパティをグローバルに入力するために使用します。

于 2013-08-30T22:29:56.120 に答える
1

確実に実行するには、Web サービス呼び出しを行う必要があります。ありがたいことに、SPServices を使用すると、迅速かつ簡単に実行できます。

http://spservices.codeplex.com/wikipage?title= $%28%29.SPServices.SPGetCurrentUser

$().SPServices.SPGetCurrentUser({
    fieldName: "Name",
    debug: false
});
于 2012-06-20T17:41:04.813 に答える