月別アーカイブ: 6 月 2009

InfoPath フォームのサーヴィス, フォーム ベースの認証 (FBA) 一意のファイル名

私はいくつかの InfoPath フォーム今週の MOSS 環境では FBA に取り組んで学んだきた, 展開に行ったらフォーム、FBA を使用の運用環境には、ゾーンのユーザー名() 関数機能が動作しません。. 一意のファイル名を生成するために使用していた.

よく, 関数は、fba の処理環境では動作しません (少なくとも, アウト ボックスのないです。). と, 時の反射, 私は予定していた方法でユーザー名を使用して一意のファイル名は任意のイベントで保証がないです。.

私の解決策は、今を使用していた() 関数と、フォームの読み込みで発生するルール. 空白の場合のデータ要素に名前を割り当てる:

image

image

このアプローチの利点は、ファイル名を一度だけ設定されています。. (私はそれのスクリーン ショットを表示しません。, しかし、"myFilename"が空白の場合にのみ、ルールに条件を置く). データ ソース レベルでファイル名を設定するために使用. 通常, 何をか (悪い) このように:

image

問題はユーザー A が月曜日に、フォームを開き、ユーザー B が火曜日に変更する場合は, 2 つの異なるユーザーが異なるユーザー名を保存から、2 つの異なるフォームになるぞ.

だから, FBA 一般と InfoPath を特にすることができます迷惑として, それは私は小さいが本当に重要な技術の詳細とそれ以外の場合たろうアプローチを再考しました。!

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

Technorati のタグ:

SharePoint のリストとドキュメント ライブラリ ビューをセキュリティ保護するようです。 (並べ替え) JQuery の

これは別のポストには私 シリーズの予定 使用方法 jQuery SharePoint と.
JQuery についてもっと学びたい場合, 私は非常にお勧め: 『 jQuery in Action クマ Bibeault、イェフダー Katz による.

思った最初の事の 1 つ, かつて私は jQuery を使って再生するには, 我々 が SharePoint ビューをセキュリティで保護するそれを使用できるかどうかは. 答えは"no" (または少なくとも, 不可能とは言わない). ただし, それは確かに困難に人々 が特定のビューを参照してくださいすることが可能.

これに取り組んでいるとき、私のサンド ボックス環境を始めました. その環境をここに書いた: 迅速で簡単な: SharePoint のあなた自身の jQuery サンド ボックスを作成します。.

「するには、セキュリティで保護するには」, これらの手順を実行します:

  1. セキュリティで保護するビューを作成します。. 私はそれを行なったし、それを「保護されたビュー」と呼ばれる.

    これは、"保護されていないときは"どのように見えるです。:

    image

  2. サンド ボックスの資料に記載されているトリックを使用してビューのページにコンテンツ エディター web パーツを追加します。 (すなわち. 追加「ページビュー = 共有&ToolPaneView = 2"URL).
  3. これらの狂気の手順に従って SharePoint _spUserId を把握します。, 信じるか:
    1. SharePoint 環境にログインします。.
    2. Web ブラウザーのアドレス フィールドに, タイプ: java スクリプトの設定」:アラート(_spUserId」).
    3. 結果を記録します。 (それは私の場合「13」).

      image

  4. コード ビューで、CEWP に以下の javascript を追加します。:

    <スクリプトの型 ="テキスト/javascript"
        src ="../../jQuery Library/jquery-1.3.2.min.js">
    </スクリプト>
    
    <スクリプトの型 ="テキスト/javascript">
      $(関数() {
    
        アラート(_spUserId);
    
        var theSecuredView = $(' iframe[FilterLink * = セキュリティで保護された  view]');
    
        場合 ((theSecuredView.length > 0) && (_spUserId = = 13))
          $(' iframe[FilterLink * = セキュリティで保護された  view]').親().親().親().html("<tr bgcolor = 赤><td>あなたのビューを使用しません。!</td></tr>");
      });
    
    </スクリプト>
    

その警告を含まれています。(_spUserId) これはない方法を示すためにそこにラインは本当に、「するには、セキュリティ保護する」, 単にそれより困難を参照してくださいすることが、. その瞬間について.

基本的には, jQuery は、値に"セキュリティで保護された view"を含む属性を持つページ iFrame を探しています. それが見つかったら, 我々 は現在のユーザーが「13」であるかどうかをチェックします。. だとすると, 私たちに DOM を歩いて、 <TR> タグ (ソースを表示して、トレースによって私を考え出した) TR タグを自分のメッセージを交換. これはどのように堅牢です本当に分からない (非常に疑わしい, 実際), それは私のサンド ボックスで働いていたが、. 私はより良い方法を見つける場合, それについてのブログがあります。. これは、結果です。:

image

OK ボタンをクリックし、データに大きな赤色のメッセージに置き換えられます:

image

言うことができます。, 私は実装方法この「セキュリティ」ソリューションは、web パーツ自体を表示を許可するには. 完了すると、, 私は私"ビューがありませんあなたのためにそのコンテンツを上書き!"メッセージ.

それではないという事実にもかかわらず実際には"セキュリティで保護された '」ビュー, 潜在的に有用ないくつかの巧妙な仕事とは, 最終的にはより正式な意味でセキュリティ保護可能な場合があります。. 根本的な問題は、クライアントがすべてのデータを取得し、, データを取得した後のみ, それはそれを拭く. クライアントがデータを取得する場合, 巧妙なユーザーことができます jQuery のすべてを妨げるし、彼/彼女が見たいを参照してください。.

その他の欠点があります。. この「セキュリティ」手法、_spUserId オフ. 私たちが望むに本当に安全なに基づいて完全な SharePoint のセキュリティ モデル, あるいは、少なくともユーザー名で. 徐々 に難しくなります。, しかし、私はこの件名に書かれたいくつかの良いものを参照してください。, 私はその問題に対するよい答えを期待しているので.

自分のビューの一覧をトリミングします。, 可能であれば. 私はそれを把握しようとしていません。. 私はそれが可能と仮定します。, 誰かはただ彼らビューの URL を入力可能性があるので本当に基本的なセキュリティの問題を解決しませんが、 (彼らはそれを知っていた場合). ただし, トリミングにかなって. それは良い使いやすさ機能と物事を難読化すること. エンド ・ ユーザーは、ビューのイベントが存在することを把握していない場合, 彼らはおそらくそれを使用しようとはしません. 時々, それは十分によいです。.

幸運, 私はもっと時間をかけてこの件名に書き込む必要があります。.

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

迅速で簡単な: 使用する jQuery SharePoint フォーム テキスト フィールドを非表示にする方法

これは別のポストには私 シリーズの予定 使用方法 jQuery SharePoint と.
JQuery についてもっと学びたい場合, 私は非常にお勧め: 『 jQuery in Action クマ Bibeault、イェフダー Katz による.

以前, JQuery を使用して検索し、フォームのテキスト フィールドを非表示にする方法について書きました. 特定のアプローチのため気にしませんでした。 (-それは単に両親が連鎖されたこれらの日を行われていません。, 少なくとも品質な家族).

最初それについて考え始めたとき, 見つけるために必要を知っていた、 <TR> 私は、非表示を呼び出す可能性があります。() メソッド. 正しいを見つける私の早めの努力 <TR> このようなものだった:

$(' tr:が(入力[タイトル = 私を非表示!])');

それの問題は、それを見つけるだろうすべて <TR> タグを非表示に任意の親の関係を持っていた私! フィールド, 私も非表示にします。! 多くのレベル深い入れ子になっています。 <TR>の. それが私のサンド ボックスのフォームに判明します。, その表現が見つかった 9 異なる TR を持っている私を隠す! その DOM ツリーのどこかの子として. 入力フィールド自体から歩いてツリーをバックアップできることに気づいた, では、親の濫用に終了方法, しかし、私と一緒によく座っていませんでした。.

私はこれにいくつかの考えを与えたし、最後に読んだものの 1 つを成して: Not を使用可能性があります。() メソッドをトリムするには <TR>私のラップされたセットにしたくないの. これに私を導いた:

$(' tr:が(入力[タイトル = 私を非表示!])').ない(' tr:が(tr)').非表示します。();

最初のビットはすべてを見つけ、 <TR> タグが非表示にする私! あれば、自分の階層フィールド. それは、いずれかをストリップします。 <TR> それはまた子供がいます。 <TR>. これ一つで私たちを葉します。 <TR> を:

1) ないです。 <TR> 子レコード

2) 子として入力フィールドをが.

我々 はその後、非表示を適用できます。() メソッドの結果を設定し、我々 が行っています。.

私はまだこのことについて少し緊張, しかしない親のチェーンのように神経質.

私は、これがベスト プラクティスであるかどうか知らない. 適切な方法を識別する可能性がありますだけ <TR> SharePoint フォームに注意します。. あなたが知っている場合, くださいコメントを投稿します。.

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

Technorati のタグ: ,

迅速で簡単な: JQuery を使用して SharePoint フォーム上のテキスト フィールドを非表示にする

これは別のポストには私 シリーズの予定 使用方法 jQuery SharePoint と.
JQuery についてもっと学びたい場合, 私は非常にお勧め: 『 jQuery in Action クマ Bibeault、イェフダー Katz による.

更新プログラム (既に!): 検索する良い方法の感想は <TR> タグを非表示にして ここにそれについて書いた. まだ興味深い見つけるかもしれないこの記事かくので、私は学習を.

テキスト フィールドを非表示にします。, 私を隠す」!"示すように:

image

JQuery の次は私のためのトリックを行います:

<スクリプトの型 ="テキスト/javascript">

  $(関数() {


    $(' 入力[タイトル = 私を非表示!]').親().親().親().非表示します。();

  });

</スクリプト>

コードは言っています。, "私はすべての入力フィールドのタイトルを見つける = 私を非表示!. [, 親とし、次へを得る親とは * next * 親 (あー!) 非表示にするを呼び出す() そのことで法, あることを起こるものは何でも.

SharePoint 作成のように、フォームの HTML を表示することによってその親構造を考え出した:

<TR>
    <TD nowrap="true" valign"トップ =" "190px =" クラス"ms-formlabel"=>
        <H3 クラス"ms-standardheader"=>
            <nobr>私を非表示します。!</nobr>
        </H3>
    </TD>

    <TD valign"トップ =" クラス="ms formbody" 「400 px」を =>
        <!-- FieldName = 私を隠す」!"
                 FieldInternalName ="Hide_x0020_Me_x0021_"
                 FieldType ="SPFieldText"
        -->
        <スパン dir=「なし」>
            <入力
                名前="ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ テキスト フィールド"
                タイプ"テキストを ="
                maxlength プロパティ"255 ="
                id"ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField ="
                タイトル私を隠す」を =!"
                クラス="ms ロング" />
                <br>
        </スパン>


    </TD>
</TR>

この図は同じ, しかし、両親とマークアップ:

image

最初の親 (1) span タグは、します。. スパンの親 (2) TD タグであり、最終的になれば本当に親を非表示にします。 (3) TR タグ自体であります。.

これは、このフォームの非常に特定の構造に非常に依存しているためにだと思うかなりひどいアプローチ. ときに SharePoint 2010 出てくる, この全体の構造を変更し、このアプローチを破る. クラフトの線に沿って、jQuery セレクター"私を見つけるすべての TR の私が本当にしたいです。 (TR タグのみ) あるどこかそれらの子要素の入力フィールドのタイトル = 私を非表示!”. 私は底から始まって、上へ移動. これを把握と仮定すると, 更新を投稿します"迅速かつ簡単な ' の記事.

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

del.icio.us タグ: ,

Technorati のタグ: ,

迅速で簡単な: SharePoint のあなた自身の jQuery サンド ボックスを作成します。

これは別のポストには私 シリーズの予定 使用方法 jQuery SharePoint と.
JQuery についてもっと学びたい場合, 私は非常にお勧め: 『 jQuery in Action クマ Bibeault、イェフダー Katz による.

SharePoint で jQuery を使って開始は驚くほど簡単 (私を). (運用環境にこれらの事を展開する「ベスト プラクティス」アプローチについて深刻な質問を行う, それは別の日の). 私はこの技術とそのための再生を開始しました, 使用するサンド ボックス環境を作成しました。. JQuery を始めるために探しているなら, あなたはこのアプローチが役に立つことがあります。.

1. 空のサイトを作成します。

あなたのサイトのどこか空のサイトを作成して"jQuery サンド ボックス"のような巧妙な何かコール.

2. JQuery をダウンロードします。

ここから jQuery javascript ライブラリをダウンロードすることができます。: http://docs.jquery.com/Downloading_jQuery

ことがあなたのデスクトップに保存します。.

「縮小」のバージョンを使用されています。.

3. SharePoint ドキュメント ライブラリを作成します。

サンド ボックス サイト内, ドキュメント ライブラリを作成します。.

4. JQuery ライブラリを SharePoint にアップロードします。

作成したドキュメント ライブラリにアクセスし、jQuery ライブラリをアップロード.

5. カスタム SharePoint リストを作成します。

標準的な SharePoint フォームでウロウロしたいのでカスタム リスト始めました. ページ ライブラリ内のページや web パーツ ページおよびおそらく多くの他の場所も作成.

に対して jQuery を実行する何かがあるので、カスタム リストにいくつかの列を追加します。. 私の初期の目的は、:

  1. フィールドの非表示します。.
  2. フィールドに値を割り当てる.

その心の目的, 2 つのテキスト フィールドを追加しました. 時間をかけて, 私はリンクで遊んでみよう, 画像, ルックアップ, など.

6. NewForm.aspx Web パーツ ページを変更し、コンテンツ エディター Web パーツを追加

これは少しブラック magic-ish , それが私の新しいコンセプトです。. 私は最初からこのことについて学んだ ポール ・ グルニエ, SharePoint jQuery のスーパー スター, CodePlex プロジェクト サイトでは、: http://spff.codeplex.com/.

NewForm.aspx が表示されます任意のカスタム リストを同じページに、CEWP を追加する手順に従います:

  1. カスタム リストにアクセスし、新規をクリックします.
  2. 次の URL に追加します。: ページビュー = 共有&ToolPaneView = 2

このような何かから退屈なバニラのデータ エントリ フォームに変換されます。:

image

これに:

image

コンテンツ エディター web パーツをページに追加します。.

7. あなたの最初の jQuery コードを書く

[コード] ビューでその CEWP を開くし、次の追加:

image

ここで、実際のコードは、コピー/貼り付けする場合:

<スクリプトの型 ="テキスト/javascript"
    src ="../../jQuery Library/jquery-1.3.2.min.js">
</スクリプト>

<スクリプトの型 ="テキスト/javascript">
  $(関数() {

    $(' #resultsID').html(' があります ' + $(' a').サイズ() + ' このページでタグ タグ。 ');

  });
</スクリプト>

結果:
<div id =' resultsID'></div>
/結果

注意最初の <スクリプト> タグは実際 jQuery ライブラリを参照します。. おそらく, これらの事を時間をかけて変更します。, 確認したいので、) 正しい名前と b を使用します。) 正しい SharePoint ドキュメント ライブラリを指すように.

栄光に浴する

あなたが正しくそれをした場合, 次のような結果が表示されます。:

image

包む

これは開始する唯一の方法ではないです。, しかし、それは速い, 簡単で、既存の SharePoint 環境から分離されました。.

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

Technorati のタグ: ,

del.icio.us タグ: ,

迅速で簡単な: SharePoint フォームの設定、テキストのフィールドの値に jQuery を使用してください。

私はで遊んで開始 jQuery 昨日. 私は長い間これを行うにしたいと思ってきた, 以来 ポール ・ グルニエ 書き始めた 彼のシリーズ 由緒あるでエンド ・ ユーザーのための jQuery について www.endusersharepoint.com web サイト. それを使うので, このような一連の「簡単で使いやすい」の記事を追加したいです。. この記事は、何をしたい既知のテキスト フィールドの値を設定する方法を説明します。.

このシナリオでは, その「新しい」フォームのように表示されますカスタム リストを作成しました。:

image

これは既定のタイトル列を持つカスタム リスト用の新しいフォームと 2 つのリストの列 (サイト列; 任意の違いを作るべきであるとは思わない).

目的のフィールドに任意の値を割り当てるには, "DefaultMeFieldNoSpaces" (私に起こっている、「スペース」と臆病者のビットを伝えることができます。, しかし、この記事の終わりに入れましたか).

JQuery のこのビット労役我乍ら:

<スクリプトの型 ="テキスト/javascript">

  $(関数() {

    $(' 入力[タイトル = DefaultMeFieldNoSpaces]').attr(
        {: ' の通路の曲がりくねった迷路の中では, すべて同じです '。});

  });

</スクリプト>

私はそれを理解して jQuery のこのビットは言っています。, 「私にいずれか見つける入力タグのタイトル = DefaultMeFieldNoSpaces. [, すべてのこれらの値に設定、有名なフレーズ古いコンピューター ゲームから。」

我々 はそのフィールドに値を割り当てることの保証と他にないだけがある 1 つのフィールド、タイトルをフォームの"DefaultMeFieldNoSpaces"と等しいので.

名前に空白文字はフィールドについての何? それはほぼ同じ:

<スクリプトの型 ="テキスト/javascript">

  $(関数() {
     $(' 入力[タイトル = フィールドで空間に割り当てる]').attr(
        {値: ' の通路の曲がりくねった迷路の中では, すべて同じです '。});

  });

</スクリプト>

これは、かなり安全なアプローチだと思う, 私たちが望むフィールドおよびフィールドだけを検索することができるべきであることを意味したいです。. HTML SharePoint は私たちを与えている場合を見て, それは一種の乱雑:

<入力
名前="ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ テキスト フィールド"
タイプ"テキストを ="
maxlength プロパティ"255 ="
id"ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField ="
タイトル"DefaultMeFieldNoSpaces ="
クラス="ms ロング"
/>

私たち任意の値を代入する特定の列を特定するために認識可能なうまくいけばユニークな属性として際立っている「タイトル」.

これは、基礎的な概念. どんな賞を獲得するつもりはないこのような任意の方法でフィールドを設定. ただし, もっと面白いフォーム レベルのものをやってみたい場合 (私たちのすべては、常にやりたいです。, もちろんです, 終えたらすぐ、お皿を洗う), 値に基づいて、自動的に"フィールド b"の値を変更するよう"フィールド、", 私たち (私は) これらのことを学ぶ必要があります。.

ここで本当の有用な値を取得する私たちの最高のチャンスは、タイトルを介してだと思う, 少なくともテキスト フィールド. 良い可能性があります。, 信頼性の高いアプローチ. それを見つける場合, 私はこのポストが更新されます。. あなたはより良い方法を知っている場合, コメントを残してください。</終了>

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

Technorati のタグ: ,