2009-04-04 11 views
3

私はユーザーにexposeneレポートを提出できるようにするカスタムinfopathワークフローを用意しています。誰かがフォームライブラリに費用レポートを提出すると、ワークフローが開始されます。ワークフローはWeburlをチェックし、一般的な方法を使用すると、ワークフロー項目を指すリンクを作成し、このリンクをメールで送信者と承認者に送信します。Sharepointポータルサイトの(公開)インターネットURLを取得する

今私が達成したいのは、公開URLを使用してワークフローアイテムを指す方法が必要なため、ユーザーがイントラネットまたはインターネットからのリクエストを提出していても、リンクがインターネットURLを指しているためですイントラネットが利用できない場合、ユーザーはインターネットURLを使用してメールボックスからアイテムを開くことができます。

私は要するに、私はサイトのパブリックURLを取得する方法が必要だと思います。また、そのサイトは、いくつかのセキュリティ設定を備えたインターネット用に拡張される可能性があることに留意してください。これを行う最も簡単で効率的な方法は何でしょうか。

答えて

0

あなたが試みていることを理解していれば、インターネットにアクセスしてSharePointワークフローオブジェクトにアクセスする方法が必要です。私が間違っているなら、私を訂正してください。

これは私がやることです:ワークフローオブジェクトを公開する単一のページを持つ単純なWebサイト/ DNSを設定します。そうすれば、このサイトを通知のリンクのベースとして使用できます。

例:私はしばらく前に書いたHTMLフォームエンジンを持っています。顧客は、それがインターネット上でもアクセス可能であることを要求したばかりです。 IISで新しいサイトを作成し、そのIPアドレスをプロキシして、イントラネットアプリケーションをインターネットに公開しました。もちろん、セキュリティ上の問題や小さなイントラネットキャビットがありますが、それほど大きな問題はありません。

希望に役立ちます。

3

ユーザーの相対パスページまたはリンクは、ユーザーがサイトにアクセスするゾーンに関係なく同じです。 URLで変更する必要があるのは、ホスト名の部分だけです。

あなたはあなたが常に新しいのSPSiteオブジェクトを作成し、コンストラクタで、それのためのゾーンを指定することにより、特定のゾーンからURLを取得することを確認することができます次のコード

SPContext.Current.Site.WebApplication.GetResponseUri(Microsoft.SharePoint.Administration.SPUrlZone.Default).AbsoluteUri 
2

で任意のゾーンのURLを取得することができます。あなたの場合はデフォルトのゾーン(SharePointは電子メールの送信時にこのゾーンのURLを使用します)またはインターネットゾーンで試すことができます。あなたは以下の小さなサンプルを持っています:

using(SPSite site = new SPSite(currentSiteId, SPUrlZone.Default) 
{ 
    string publicUrl = site.MakeFullUrl(serverRelativeUrl); 
    // note that MakeFullUrl takes a server relative url not a site relative one 
} 
関連する問題