none
WSSでのXML Webパーツを使用したRSSリーダー RRS feed

  • 質問

  • こんにちは。

    WSSサイトのトップに、サイト内コンテンツの更新状態が分かるようにRSSリーダーを設置したいと思い、XML Webパーツを配置したのですが、以下の現象で困っています。どなたかお知恵をお貸しください。

    パーツの編集で、XMLリンク欄にRSSフィードのURLを入力(http://xxx/_layouts/listfeed.aspx?List=7ABF・・・・・B430)

    1. [リンクのテスト]ではフィードが正常に表示される。
    2. [OK]で実際に動作させると、「XML リンク プロパティで指定された URL を取得できません。詳細についてはサイトの管理者に問い合わせてください。」とエラーがWebパーツに表示されてしまう。
    3. 1.で表示されるフィードのソースをxmlファイルとしてサーバーに保存し、xmlリンク欄に指定した場合はWebパーツに更新情報が表示される。

    xslエディタには、下記のコードを入力しています。参考サイトhttp://msdn.microsoft.com/ja-jp/library/aa478968.aspx#mainSection

    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" 
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="html" omit-xml-declaration="yes" />
    
      <xsl:template match="/rss/channel">
       <b><xsl:value-of select="title" 
              disable-output-escaping="yes" /></b>
       <xsl:for-each select="item">
         <li>
          <a>
            <xsl:attribute name="href">
             DisplayItem.aspx?ID=<xsl:number value="position()" />
      </xsl:attribute>
            <xsl:attribute name="target">rbottom</xsl:attribute>
            <xsl:value-of select="title"
                disable-output-escaping="yes" />
          </a>
            (<xsl:value-of select="pubDate" />)
         </li>
       </xsl:for-each>
      </xsl:template>
    </xsl:stylesheet>
    

    3.でWebパーツにファイルから拾った情報が表示されているので、xslは一応あっていると思います。

    なぜ、フィードのURLを指定した場合に「URLを取得できない」となってしまうのでしょうか?

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

    2011年4月12日 8:08

回答

  • おそらく同じ原因だと思います

    http://sharepointmaniacs.com/archives/58

     


    SharePoint MANIACS あなたの SharePoint 活用できていますか?ちいさな「アドバイス」からご支援します。 http://sharepointmaniacs.com/
    • 回答としてマーク kanekichi 2011年5月6日 7:55
    2011年4月25日 8:38
  • [リンクのテスト]では、リンクを見に行っているのはブラウザーです。

        ブラウザ → RSS.XML

    しかし、フィードのURLに記述して、Webパーツとして表示した場合、Webアプリケーションのプロセスが代理で読み込みます。

        ブラウザ → サーバー → RSS.XML

     

    XMLパーツをURLで指定すると、セキュリティコンテキストをまたぐので、再度資格情報を送らなくてはなりません。

    そのため、Webアプリケーションはクライアントの資格情報を知らないので、取得できないのです。

     

    対策としましては、ブラウザから直接読み込むように、HTMLエディタWebパーツを使用して、

    JavaScriptで記述してみて下さい。

     

    • 回答としてマーク kanekichi 2011年5月6日 7:56
    2011年5月2日 1:49

すべての返信

  • おそらく同じ原因だと思います

    http://sharepointmaniacs.com/archives/58

     


    SharePoint MANIACS あなたの SharePoint 活用できていますか?ちいさな「アドバイス」からご支援します。 http://sharepointmaniacs.com/
    • 回答としてマーク kanekichi 2011年5月6日 7:55
    2011年4月25日 8:38
  • [リンクのテスト]では、リンクを見に行っているのはブラウザーです。

        ブラウザ → RSS.XML

    しかし、フィードのURLに記述して、Webパーツとして表示した場合、Webアプリケーションのプロセスが代理で読み込みます。

        ブラウザ → サーバー → RSS.XML

     

    XMLパーツをURLで指定すると、セキュリティコンテキストをまたぐので、再度資格情報を送らなくてはなりません。

    そのため、Webアプリケーションはクライアントの資格情報を知らないので、取得できないのです。

     

    対策としましては、ブラウザから直接読み込むように、HTMLエディタWebパーツを使用して、

    JavaScriptで記述してみて下さい。

     

    • 回答としてマーク kanekichi 2011年5月6日 7:56
    2011年5月2日 1:49
  • 中村様 回答をいただきましてありがとうございます。

    認証の問題なんですね。

    仕様として、いまいちのような気もしますがXMLWebパーツでの表示はあきらめました。

     

    2011年5月6日 7:56
  • R00tZer0.WH様 回答をいただきましてありがとうございます。

    原因も理解しました。認証の問題なんですね。

    おっしゃるように、スクリプトを使用することで何とか実現できました。

    ・参照したいフィードのURLをXML文書にリスト化して保存

    ・フィードを読みに行き、受け取った情報を解析してHTML文書を作成

    ・作成したHTML文書をWebビューパーツで表示する。

    というような仕組みです。

    今回スクリプトの勉強もできましたし、表示の体裁なども好みにすることができたので結果オーライかな?

     

    ありがとうございました。

    2011年5月6日 8:11