3

Sharepoint 2013 用の自動ホスト asp.net アプリを開発しています。要求には SPAppWebUrl トークン値を使用する必要があります。だから私はこれを試しました:

  • AppManifest.xml :<StartPage>~remoteAppUrl/Pages/Index.aspx?{StandardTokens}</StartPage>
  • JavaScript : var appweburl = decodeURIComponent(getQueryStringParameter("SPAppWebUrl"));
  • C# 分離コード:Application["SPAppWebUrl"] = Request.QueryString["SPAppWebUrl"];

何も機能しませんでした。Sharepoint は、SPHostUrl、SPLanguage、SPClientTag、および SPProductNumber の値のみを送信します。トークンに関するトピック を読み、これに注意しました:

アプリ Web がない場合、&SPAppWebUrl={AppWebUrl} の部分は存在しません。

しかし、どうやってアプリのウェブを持てなかったのか理解できません...誰か助けてください。ありがとう。

4

2 に答える 2

0

まったく同じ問題がありました。次のブログ投稿は、それを解決する方法を示しています。

プロバイダーがホストするアプリを使用した SP Rest サービス

基本的に、プロバイダーがホストするアプリにはアプリ Web がないため、sharepoint に作成するように指示する必要があります。これを行うには、SharePoint プロジェクトにダミー オブジェクト (サイト列、リストなど) を追加します。次に、アプリ Web を作成し、SPAppWebUrl を標準トークン (アプリ マニフェスト内) に追加します。

于 2016-08-12T14:54:25.610 に答える
0

Provider Hosted を使用していたときに、同様の問題が発生しました。機能しない証明書 (ワイルドカード) を使用しようとしたため、App Web が表示されませんでした。自己署名証明書を使用してもう一度証明書のセットアップを行いました-次に、ダミーリストをセットアップし、見たとき:

string spAppUrl = Request["SPAppWebUrl"];

適正値を取り戻しています。次に、URL を使用して、次の方法でアプリの Web を取得します。

System.Security.Principal.WindowsIdentity currentUser = Request.LogonUserIdentity;

using (var appContext = TokenHelper.GetS2SClientContextWithWindowsIdentity(appUri, currentUser))
            {
                if (appContext != null)
                {
                    Web appWeb = appContext.Web;
                    appContext.Load(appWeb, w => w.Title);
                    appContext.ExecuteQuery();
                    string title = appWeb.Title;
                    ViewBag.SiteTitle = title;
                }
            }
于 2014-01-28T22:05:57.717 に答える