Aylık Arşivler: Haziran 2009

InfoPath Form Hizmetleri, Form tabanlı kimlik doğrulaması (FBA) ve benzersiz dosya adları

Bazı InfoPath formları MOSS bu hafta FBA ortamında üzerinde çalışıyor ve öğrenmiş oldum, formlar bir FBA ile üretim ortamına dağıtmak için gittiğimde bu bölge kullanıcı adı() fonksiyonu işlevi çalışmıyor. Ben benzersiz dosya adları oluşturmak için kullanıyordum.

İyi, işlev bir FBA ortamda çalışmaz (en az, kutudan değil). Ve, yansıması üzerine, planladığım şekilde kullanıcı adınızı kullanarak benzersiz bir dosya adı olursa olsun garantili değil.

Benim çözüm şimdi kullanımı yapıldı.() işlev ve form yükleme üzerinde yangınları bir kural. Boş olduğunda veri öğesine dosya adını atayın:

image

image

Bu yaklaşımın avantajı dosya adını yalnızca bir kez ayarlamanız olduğunu. (Belgili tanımlık perde atış gösterme., Ama sadece "myFilename" boş olduğunda yangın için kuralı koşulu koy). Dosya adını veri kaynak düzeyinde ayarlamak için kullanılan. Genellikle, Bir şeyler yapmak (kötü) Böyle:

image

Bu sorun bir kullanıcı Pazartesi günü formunu açar ve kullanıcı B Salı günü değiştirirse olduğunu, iki farklı kullanıcılar farklı kullanıcı adlarıyla kaydettiğinizden bu yana iki farklı formları ile bitireceğiz.

Yani, FBA genel ve InfoPath ile özellikle olabileceği kadar rahatsız edici olarak, küçük ama çok önemli teknik ayrıntı ve başka türlü yapmazdım yaklaşımı yeniden düşündüm!

</sonunda>

Benim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin

Technorati Tags:

SharePoint listesi/belge kitaplığı görünümleri güvenliğini sağlama gibi görünüyor (çeşit) JQuery ile mümkün

Bu başka bir yazı olduğu zaman devam serisi nasıl kullanılacağı hakkında jQuery SharePoint ile.
JQuery hakkında daha fazla bilgi almak isterseniz, Ben çok tavsiye ederim: jQuery in Action Ayı Bibeault ve Yehuda Katz tarafından.

Ben düşündüm ilk şey, bir keresinde jQuery ile çevresinde oynamaya başladı., SharePoint görünümüne güvenliğini sağlamak için kullanabiliriz olup olmadığını oldu. Cevabım "Hayır" (ya da en azından, Mümkün olduğunu iddia etmiyorum). Ancak, belirli bir görünüm görmek insanlar için zor yapmak kesinlikle mümkün.

Ne zaman çalışma üstünde bu benim kum çevre ile başladı. Bu ortamda hakkında yazdı: Hızlı ve kolay: Your Own jQuery sanal oluşturmak için SharePoint.

"Bir görünüm sağlamak için", adımları izleyin:

  1. Güvenliğini sağlamak istediğiniz bir görünüm oluşturma. Ben bunu yaptım ve "Güvenli görünümü" olarak adlandırılan.

    Ne zaman değil "güvenli" İşte görebiliriz:

    image

  2. Sandbox makalesinde açıklanan hile kullanarak görünümün sayfaya içerik düzenleyicisi web bölümü ekleme (Yani. eklemek "sayfa gösterimi paylaşılan =&ToolPaneView 2" URL =).
  3. Deli aaıdaki adımları izleyerek SharePoint _spUserId rakam, inanma:
    1. SharePoint çalışma ortamınızla oturum.
    2. Web tarayıcınızın adres alanına, türü: "javascript:Uyarı(_spUserId").
    3. Kayıt sonucu (Benim durumumda "13" olduğunu).

      image

  4. Senin CEWP kod görünümünde aşağıdaki javascript ekleyin:

    <komut dosyası türü ="text/javascript"
        src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </komut dosyası>
    
    <komut dosyası türü ="text/javascript">
      $(işlevi() {
    
        Uyarı(_spUserId);
    
        var theSecuredView = $(' iframe[FilterLink * güvenli % 20View =]');
    
        Eğer ((theSecuredView.length > 0) && (_spUserId == 13))
          $(' iframe[FilterLink * güvenli % 20View =]').üst().üst().üst().HTML("<tr bgcolor = kırmızı><TD>Senin için bir görünüm yok!</TD></tr>");
      });
    
    </komut dosyası>
    

Bu uyarı yer verdik(_spUserId) satır nasıl bu değil göstermek için orada gerçekten bir "bir görünüm güvenliğini sağlama", Ama sadece görmek daha zor hale. Bu bir anda hakkında daha fazla bilgi.

Temelde, jQuery bir iFrame "Güvenli % 20View" değeri içeren bir öznitelik olan sayfada arıyor. Bir kez o bulur, Geçerli kullanıcının "13" olup olmadığını görmek için kontrol edin. O ise, DOM için yukarı yürümek bir <TR> etiket (Hangi kaynak ile ilgilenen ve bu izleme farkettim) ve sonra o TR etiketi mesajımı ile değiştirme. Gerçekten ne kadar güçlü olduğunu bilmiyorum (Çok şüpheli, Aslında), Ama o benim kum havuzunda amele. Eğer daha iyi bir yol bulmak, Ben bu konuda blog olacak. Sonuç:

image

Tamam düğmesini tıklatın ve verileri büyük kırmızı mesaj ile değiştirilir:

image

Anlayacağınız gibi, Ive'alet yolu kendini gerçeklemesini web bölümü izin vermek için bu "güvenlik" çözümdür. Tamamlandıktan sonra, Benim "hiçbir Oda senin için içeriği üzerine!"mesaj.

Rağmen bu değil aslında gerçekten bir "güvenli" "Görünüm, potansiyel olarak yararlı ve bazı akıllı çalışma, sonunda daha resmi bir anlamda güvenliği sağlanabilir olabilir. Temel konudur istemcinin tüm verileri almak ve sonra, yalnızca verileri alır sonra, o mendil. Eğer istemcinin verileri elde ettiğini, zeki bir kullanıcı jQuery hiç çalışmamasını ve o görmek istiyor görmek.

Diğer dezavantajları. Bu "güvenlik" yaklaşımı bir _spUserId dayanır. İsteyelim ki için gerçekten güvenli tam SharePoint güvenlik modelini temel, ya da en azından kullanıcı adına göre. Bu giderek daha zor hale gelir, Ama bu konuda yazılmış güzel bir şeyler görüyorum., çok iyi bir cevap bu soruna umutluyum.

Kendilerini görünümler listesi kesilmiş olabilir, Mümkünse. Bunu anlamak denemedim. Bu mümkündür varsayıyorum, birisi yine de manzarayı istiyorlar URL'sini yazın çünkü gerçekten temel güvenlik sorunu çözmüyor ama (Onlar knew). Ancak, kırpma mantıklı. İyi kullanılabilirlik bir özelliktir ve bu şeyler karartmak için yardımcı olur. Windows'u, son kullanıcının görünüm olayı var olduğunu bilmiyorsa, Muhtemelen bunu kullanmayı deneyin olmaz. Bazen, Bu yeterince iyi.

Şans ile, Zaman içinde bu konuda yazmak için daha fazla olacak.

</sonunda>

Benim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin

del.icio.us Etiketler: ,,

Hızlı ve kolay: Bir yol daha iyi bir SharePoint Form üzerindeki bir metin alanı gizlemek için kullanma jQuery

Bu başka bir yazı olduğu zaman devam serisi nasıl kullanılacağı hakkında jQuery SharePoint ile.
JQuery hakkında daha fazla bilgi almak isterseniz, Ben çok tavsiye ederim: jQuery in Action Ayı Bibeault ve Yehuda Katz tarafından.

Daha önce, JQuery bulun ve form üzerindeki metin alanı gizlemek için nasıl kullanılacağı hakkında yazdı. Belirli bir yaklaşım için umurumda değildi (Ben sadece 's anne-zincirleme bu gün bitmiş değil, En azından ailelerde kalite).

Ben ilk bu konuda düşünmeye başladı, Ben gerekli bulmak biliyordum bir <TR> hangi ben gizle yakarmak() yöntemi. Erken benim çaba doğru bulmak için <TR> Bu gibi bir şey:

$(' tr:var(giriş[Başlık = beni gizle!])');

Bunu bulacağını sorunla bir her <TR> herhangi bir üst ilişkisini gizlemek için beni vardı etiketi! alan, bile beni gizle! olan pek çok düzeyde derin iç içe <TR>Dünün. Benim kum formunda meğer, Bu ifade bulur 9 kim-si olmak farklı TR'ın beni gizle! bir çocuk bir yerde olan DOM ağaç. Ben giriş alanından kendisi geri ağaca yürüyebiliyordu fark, böylece nasıl anne kötüye kadar sona erdi 's, ama o de benimle oturup vermedi.

Ben bazı düşünce verdi ve son olarak okuduğum şey mantıklı: I-ebil kullanma belgili tanımlık değil() yöntem dışarı kırpmak için <TR>benim kaydırılan kümesinde istemiyorum 's. Bu beni buna yol açan:

$(' tr:var(giriş[Başlık = beni gizle!])').değil(' tr:var(tr)').gizle();

İlk bit tüm bulur <TR> Hide bana sahip Etiketler! kendi hiyerarşi alanında herhangi bir yeri. O zaman herhangi şeritler <TR> Ayrıca bir çocuk var <TR>. Bu bize tek bir bırakır <TR> Bu:

1) Yok <TR> alt kayıtlar

2) Girdi alanı alt öğeye sahip.

Biz o zaman gizle uygulayabilirsiniz() elde edilen yöntem ayarlamak ve biz bitti.

Ben hala bu konuda biraz sinir oldum, ama değil gibi anne zincirleme olarak sinir.

Bu en iyi yöntem olup olmadığını bilmiyorum. Tanımlama daha uygun bir yol olabilir sadece <TR> bir SharePoint form umurumuzda. Eğer biliyorsanız, Yorum yazmak için lütfen.

</sonunda>

Benim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin

Hızlı ve kolay: SharePoint Form üzerindeki metin alanı gizlemek için jQuery kullanmak

Bu başka bir yazı olduğu zaman devam serisi nasıl kullanılacağı hakkında jQuery SharePoint ile.
JQuery hakkında daha fazla bilgi almak isterseniz, Ben çok tavsiye ederim: jQuery in Action Ayı Bibeault ve Yehuda Katz tarafından.

GÜNCELLEŞTİRME (zaten!): Bence daha iyi bir yol bulmak için <TR> gizlemek istediğiniz etiketi ve burada yazdım. Leavnig ben de hala bu makalede ilginç zaten bulabilirsiniz o yukarıya.

Metin alanı gizlemek istediğiniz, "Beni gizle!"gösterildiği gibi:

image

Aşağıdaki jQuery benim için hile yok:

<komut dosyası türü ="text/javascript">

  $(işlevi() {


    $(' giriş[Başlık = beni gizle!]').üst().üst().üst().gizle();

  });

</komut dosyası>

Kod söyleyerek, "bana bütün girdi alanları olan başlığı bul = beni gizle!. O zaman, üst ve sonra sonraki üst ve * ileri * üst (Vay be!) ve gizle() o şeyle yöntemi, Ne olursa olsun olmak olur..

Bu üst yapısı gösterildiği gibi SharePoint oluşturulan form HTML'sini görüntüleyerek düşündüm.:

<TR>
    <TD kaydırma= "true" DHizalama"top =" Genişlik"190px =" sınıf"ms-formlabel" =>
        <H3 sınıf"ms-standardheader" =>
            <NOBR>Sakla beni!</NOBR>
        </H3>
    </TD>

    <TD DHizalama"top =" sınıf= "ms-formbody" Genişlik"400px" =>
        <!-- FieldName = "beni gizle!"
                 FieldInternalName = "Hide_x0020_Me_x0021_"
                 FieldType "SPFieldText ="
        -->
        <yayılma dir= "hiçbiri">
            <giriş
                adı= "ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField"
                türü= "metin"
                MaxLength= 255""
                kimliği"ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField ="
                Başlık"Beni gizlemek =!"
                sınıf= "ms uzun" />
                <br>
        </yayılma>


    </TD>
</TR>

Bu resim aynı gösteriyor., Ama veliler ile işaretlenmiş:

image

İlk ebeveyn (1) bir span etiketi olduğunu. Alanı'nın üst (2) TD etiketi ve sonra nihayet biz gerçek olsun istiyorum gizlemek için üst (3) TR etiketi nedir.

Bu son derece bu formu çok özel yapısı üzerinde bağımlı olduğundan sanırım berbat bir yaklaşımdır. Ne zaman SharePoint 2010 çıkar, Bu bütünü değiştirmek ve bu yaklaşım kırmak. Gerçekten istediğim zanaat çizgisinde olduğu bir jQuery seçimi bulmak"bana TR'ın yer (ve sadece TR Etiketler) o var bir yerde bunların alt öğelerini bir giriş alanı olan başlığı = beni gizle!”. Alttan başlayan ve yukarı hareket. Ben bir yolunu varsayarak, Güncelleştirilmiş göndeririz "hızlı ve kolay ' post.

</sonunda>

Benim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin

del.icio.us Etiketler: ,

Hızlı ve kolay: Your Own jQuery sanal oluşturmak için SharePoint

Bu başka bir yazı olduğu zaman devam serisi nasıl kullanılacağı hakkında jQuery SharePoint ile.
JQuery hakkında daha fazla bilgi almak isterseniz, Ben çok tavsiye ederim: jQuery in Action Ayı Bibeault ve Yehuda Katz tarafından.

Şaşırtıcı derecede basit jQuery SharePoint ile çalışmaya başlama (Bana). (Üretim için bunları dağıtmak için "en iyi uygulamalar" bir yaklaşım hakkında ciddi soru var, Ama bu başka bir gün için). Bu teknoloji ile ve bu amaçla oynamaya başladım, Ben kullanmak için bir sanal ortam oluşturdu. JQuery ile başlamak için arıyorsanız, Bu yaklaşım yararlı olabilir.

1. Boş Site oluşturma

Boş bir site, bir yerde sitenizde oluşturmak ve "jQuery Sandbox" gibi zekice bir şey ara.

2. JQuery indir

JQuery javascript Kütüphanesi buradan indirebilirsiniz: http://docs.jquery.com/Downloading_jQuery

Bunun için masaüstünüze kaydedin.

I-si olmak be istimal "minified" sürüm.

3. SharePoint belge kitaplığı oluşturma

Sandbox siteniz, Belge kitaplığı oluşturma.

4. JQuery kütüphanesi SharePoint'e upload

Yeni oluşturduğunuz doktor kitaplığına erişmek ve jQuery kütüphanesi upload.

5. Özel bir SharePoint listesi oluştur

Standart SharePoint formlarla muck istiyorum çünkü özel bir listeyle çalışmaya başladım. Ayrıca sayfaları kitaplığındaki bir sayfa veya web bölümü sayfaları ve muhtemelen diğer yerlerde bir sürü oluşturabilirsiniz.

JQuery karşı çalıştırmak için bir şey var bazı sütunlar için özel liste ekleyin. Benim ilk hedefleri için idi:

  1. Alanı gizlemek.
  2. Bir alan için bir değer atamak.

Bu amaç ile unutmayın, İki metin alanı eklendi. Zaman içinde, Ben bağlantıları ile oynuyor olacağız, görüntüleri, aramalar, vb.

6. NewForm.aspx Web Bölümü sayfasını değiştirmek ve içerik Düzenleyicisi Web Bölümü ekleme

Bu küçük siyah magic-ish olduğunu , Benim için yeni bir kavram olduğunu. İlk bu konuda öğrendim Paul Grenier, SharePoint jQuery Superstar, onun CodePlex projesi sitesi: http://spff.codeplex.com/.

Bir CEWP NewForm.aspx özel herhangi bir listesini gösterir aynı sayfaya eklemek için aşağıdaki adımları izleyin:

  1. Özel listeyi erişmek ve Yeni'yi tıklatın.
  2. Aşağıdaki URL ekleme: Sayfa gösterimi = paylaşılan&ToolPaneView = 2

O böyle bir şey--dan senin sıkıcı vanilya veri giriş formu dönüştürmek olacaktır:

image

Bunun için:

image

İçerik Düzenleyici web bölümü sayfasına ekleme.

7. Sayın ilk jQuery kod yazmak

O CEWP kod görünümünde açın ve aşağıdakileri ekleyin:

image

İşte gerçek kodu Kopyala/Yapıştır istersen:

<komut dosyası türü ="text/javascript"
    src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
</komut dosyası>

<komut dosyası türü ="text/javascript">
  $(işlevi() {

    $('#resultsID').HTML('Vardır' + $('a').boyutu() + 'Bu sayfada bir Etiketler Etiketler.');

  });
</komut dosyası>

Sonuç:
<div kimliği ='resultsID'></div>
/Sonuç

Not ilk <komut dosyası> etiket gerçek jQuery kütüphanesi başvuran. Muhtemelen, Bu şeyler zaman içinde değişim, emin olmak istiyorum bir) b ve doğru adı kullanın) nokta o-e doğru doğru SharePoint belge kitaplığına.

Şan ısınıyoruz

Doğru olsaydı, aşağıdakine benzer bir sonuç görürsünüz:

image

Yukarı kaydırma

Başlamak için tek yolu bu değil, Ama hızlı, kolay ve varolan SharePoint ortamından yalıtılmış.

</sonunda>

Benim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin

del.icio.us Etiketler: ,

Hızlı ve kolay: JQuery için Set A metin alanının değeri bir SharePoint Form üzerinde kullanın

İskambil çevrede ile başladı. jQuery Dün. Bunu uzun zamandır yapmak isteyen, beri Paul Grenier yazmaya başladı onun serisi Son kullanıcılar için jQuery hakkında adlı saygıdeğer www.endusersharepoint.com Web sitesi. Ben kullanmak gibi, "Hızlı ve kolay" bir dizi bunun gibi bir mesaj eklemeyi umuyoruz. Bu yazı bir bilinen metin alanının değeri istediğiniz herhangi bir şey nasıl açıklar.

Bu senaryoda, "Yeni" olan form gösterildiği gibi görünüyor özel bir liste oluşturduk.:

image

Yeni form için varsayılan başlık sütun içeren özel bir liste ve iki liste sütunları bu (site sütunları; Herhangi bir fark yaratmak sanmıyorum.).

Alan için rasgele bir değer atamak için hedeftir, "DefaultMeFieldNoSpaces" (biraz korkak ile "boşluk" şey söyleyebilirim, Ama ben o spice up bu makalenin sonunda).

JQuery bu bit amele için beni:

<komut dosyası türü ="text/javascript">

  $(işlevi() {

    $(' giriş[Başlık = DefaultMeFieldNoSpaces]').attr(
        {değer: "Pasajlar burgulu bir labirent vardır, Hepsi birbirine benziyor.'});

  });

</komut dosyası>

Bu biraz jQuery anladığım kadarıyla söyleyerek, "beni bulmak birisi girdi, başlık etiketi DefaultMeFieldNoSpaces =. O zaman, tüm değerleri için ünlü bir ifade eski bir bilgisayar oyunu ayarlayın."

Sadece beri bir alan başlık içeren form üzerindeki "DefaultMeFieldNoSpaces" eşit emin o alan için bir değer atama ve başka bir.

Peki ya bir alan adı içinde boşluklar vardır? Neredeyse aynı:

<komut dosyası türü ="text/javascript">

  $(işlevi() {
     $(' giriş[Başlık alanı ile atama alanı =]').attr(
        {değer: "Pasajlar burgulu bir labirent vardır, Hepsi birbirine benziyor.'});

  });

</komut dosyası>

Bu oldukça güvenli bir yaklaşım olduğunu düşünüyorum., Biz Biz istediğiniz alanı ve yalnızca alanı bulmak mümkün olmalıdır anlam istiyoruz. Bakarsanız HTML SharePoint bize veriyor, biraz zor bir durum:

<giriş
adı= "ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField"
türü= "metin"
MaxLength= 255""
kimliği"ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField ="
Başlık"DefaultMeFieldNoSpaces ="
sınıf= "ms uzun"
/>

"başlık" bir tanınabilir ve umarım benzersiz bir öznitelik için bizim rasgele değer atamak istediğiniz belirli sütun belirlememize yardımcı olarak öne çıkıyor.

Bu temel bir kavramdır. Bu gibi rasgele bir şekilde bir alanı ayarlama herhangi bir ödül kazanacak değil. Ancak, daha ilginç form düzeyi şeyler yapmak istiyorsanız (hangi tüm-in bizi her zaman yapmak istiyorum, Elbette, bulaşıkları yıkama bittikten sonra sağ), "değeri temel alarak otomatik olarak alan b" değerini değiştirmek gibi "alan bir", Biz (BEN) Bu şeyleri öğrenmek gerekir.

Bence çok yararlı bir değer almak için en iyi şansımız başlık, en az metin alanları için. Orada-ebilmek var olmak daha iyi bir, daha güvenilir yaklaşım. Bulursam, Bu posta güncelleriz. Daha iyi bir yol biliyorsanız, Lütfen bir yorum bırakın.</sonunda>

</sonunda>

Benim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin