5

ページ ビューアー Web パーツを使用して SharePoint サイトに埋め込む必要があるスタンドアロンの asp.net ページを作成しています。asp.net ページは、同じサーバーの別のポートに公開され、埋め込む URL が提供されます。

要件は、ユーザーが SharePoint 認証を使用して認証された後、追加のオプションのために asp.net Web パーツを含むページに移動することです。

このasp.netページから行う必要があるのは、Sharepointに現在認証されているユーザー名を照会し、これをasp.netコードからページに表示することです。

VS からアプリケーションをデバッグすると、これはすべて正常に機能しますが、Sharepoint を介して公開および表示すると、ユーザーとして常に NULL が取得されます。

これを機能させるための最良の方法に関する提案は大歓迎です。

4

4 に答える 4

7

現在認証されているユーザーを SharePoint コンテキストから取得する場合は、SharePoint コンテキスト内にとどまる必要があります。これは、SharePoint 内でカスタム Web アプリケーションをホストすることを意味します ( http://msdn.microsoft.com/en-us/library/cc297200.aspxを参照)。次に、カスタム アプリケーションから Microsoft.SharePoint を参照し、SPContext オブジェクトを使用してユーザー名を取得します。例えば:

SPContext.Current.Web.CurrentUser.LoginName

ページ ビューアー Web パーツを使用して、SharePoint コンテキスト内にあるサイトの URL を参照することができます。

于 2008-09-22T08:44:49.997 に答える
1

答えてくれてありがとう!

asp.net ページが SharePoint サイトと同じ URL とポートを使用している限り、認証は両方のサイトで機能します。

解決策は、sharepoint サイト内で仮想ディレクトリを使用し、そこに asp.net ページをインストールすることです。

于 2008-09-25T05:09:30.987 に答える
0

デバッグで動作する場合、それは SharePoint で使用されていますか?

認証に関する限り、ページとSharepointサイトは異なるサーバー上にある可能性があります-情報を取得するには、可能であればWebパーツからQueryStringを介して渡す必要がある場合があります-または、これを行うには、独自の Web パーツを作成します (ユーザー名を渡す QueryString を使用して、src がページに設定されたパーツに IFRAME を配置するだけです)。

ただし、名前を何かに使用すると、これはセキュリティ上の問題になるようです。表示するだけであれば、おそらく問題ありません。

実際に認証が必要な場合は、スタンドアロン ページをホストしているサイトの web.config に認証を追加する必要がある場合があります。

編集: SharePoint と同じポートとサーバーにページを配置する方がうまくいくと思います。

于 2008-09-22T01:59:41.000 に答える
0

現在認証されているユーザー名を特定して SharePoint に照会するのは難しいと思います。あなたが説明しているような別の Web アプリケーションから SharePoint コンテキストに簡単にアクセスする方法は考えられません。

使用している認証スキームの種類はわかりませんが、Kerberos の使用を検討することをお勧めします。委任を許可し、アプリケーションからアプリケーションに資格情報を渡すことで、この種のシナリオが少し簡単になることがわかったからです。またはサーバーからサーバーへ。

于 2008-09-22T04:55:29.017 に答える