SharePoint Arşiv

Windows Gezgini Görünümünün Farklı Bir Bağlantı İle Açılması

SharePoint’in en eski sürümlerinden bu yana kullanılmakta olan bir yöntem olsa da son dönemde gündeme gelen OneDrive, sürükle/bırak yapısı gibi daha modern ve istemci tarafında ek bir servis gereksinimi bulunmayan yöntemler nedeniyle populerliği azalan bir özellik “Open with explorer” bağlantısı. Halen ribbon üzerinde görebiliyor ve kullanabiliyorsunuz. Ribbon üzerinde yer alan bu buton aracılığı ile doğrudan ve sorunsuz olarak işlemi yapabiliyorken bazen bu butonun sahip olduğu fonksiyonaliteyi örneğin hazırlayacağınız bir web bölümü üzerindeki bir buton veya linke kazandırmak isteyebilirsiniz.

Standart bir link vermek maalesef bu konuda sizin için çözüm olmayacak. Çünkü arka planda “Access Denied” hatası alacaksınız. Bu bölümde vereceğiniz link bir UNC path’e olmak zorunda. Bu durumda ise istemci tarafındaki tarayıcınız çalıştırılabilir bir dosya için link olduğunu düşünüyor ve güvenlik gerekçesi ile bağlantının çalışmasına izin vermiyor. Bu nedenle vereceğiniz bağlantıyı aşağıdaki gibi oluşturabilirsiniz.

Bu bölümde doğrudan kütüphanenin adresini vermek yerine isterseniz kütüphane içerisindeki alt klasör isimleri ile linkinizi derinleştirebilirsiniz.

SPSecurity.RunWithElevatedPrivileges Kullanımına Rağmen Access Denied Mesajı Almak

SharePoint üzerinde yazılım geliştirme işlemleri yaparken zaman zaman bağlı olan kullanıcının yetki seviyesinin üzerinde bir işlemi kontrollü şekilde daha yüksek bir yetki seviyesinde gerçekleştirmek isteyebilirsiniz. Örneğin arayüz üzerinden bir webpart yardımıyla seçilen kullanıcılara yetki vermek istiyorsunuz. Varsayılan olarak webpartınız o anda bağlı olan kullanıcının yetki seviyesinde çalışacak ve eğer bağlı kullanıcının “Full Control” yetkisi yoksa hata mesajı almasına neden olacaktır.

Bu durumda kodlarınızı aşağıdaki blok içerisine almanız kodlarınızın daha yüksek bir yetki seviyesi ile çalıştırılmasına yardımcı olur ve yaşanan sorunu ortadan kaldırabilirsiniz. Şüphesiz dikkatli kullanılması gereken bir kod bloğu.

Ancak bazen bu blokları kullanmanıza rağmen işlemin gerçekleşmediğini ve arka planda logları incelediğinizde alınan hatanın Access Denied olduğunu gözlemleyebilirsiniz. Bu durumun büyük olasılıkla nedeni bu kod bloğu dışında oluşturulmuş olan bir SPWeb veya SPSite nesnesini kullanıyor olmanızdır. Yani örneğin aşağıdaki gibi kullandığınızda sorun yaşayabilirsiniz.

Bu kullanım yerine SPSite ve SPWeb‘in bir instance’ının da SPSecurity.RunWithElevatedPrivileges içerisinde yaratılması ve bu nesnelerin kullanılması sorununuzu çözecektir. Yani kod bloğunu aşağıdaki gibi yapılandırabilirsiniz.

 

SharePoint workflows stop working after you install .NET security updates for CVE-2018-8421

Gecikmiş bir yazı ancak halen pek çok kişi tarafından sorgulandığını gözlemliyorum. Eylül 2018 döneminde yayınlanan aylık toplu güvenlik güncelleştirme paketleri sonrası SharePoint üzerinde workflow kullanan pek çok kullanıcı (Nintex workflowları dahil) iş akışlarının durduğu veya “Bu akış sistem hesabı tarafından iptal edildi” şeklinde hata aldığı sorunu ile çözüm arayışına geçti. Aslında güvenlik güncellemesinden kısa bir süre sonra Nintex gibi bu servisi kullanan geliştiriciler ve Microsoft tarafından yapılması gereken düzenlemeye ilişkin bilgi paylaşıldı ancak farkına varılmayabiliyor.

Microsoft’un orjinal destek yazısına bu bağlantıdan ulaşabilirsiniz. Kısa bir özet ile bu sorunun nasıl ortadan kaldırılacağı ise şu şekilde.

İlk yöntem elbette yüklenen güvenlik güncellemesini geri almak ancak bu kalıcı bir çözüm değil. Bir anda farkettiğiniz soruna ilişkin kalıcı çözüm devreye alınana kadar sözkonusu güncellemeleri sunucudan silebilirsiniz. Sonrasında ise her web uygulamanızın (elbette tüm web front-end sunuculardaki) web.config dosyasına aşağıdaki satırları eklemeniz gerekecek. (Web.config içinde <AuthorizedTypes araması yaparsanız varsayılan olarak ekli olanların bulunduğu node’a erişebilirsiniz),

İşlem sonrası AppPool recycle olacak ve artık workflowlarda hata almıyor olacaksınız.

Hata: Loading this assembly would produce a different grant set from other instances

SharePoint farm sunucuları üzerinde bir işletim sistemi veya MS Patch yüklemesi yaptıktan sonra zaman zaman karşılaşabileceğiniz hizmet kesintileri sözkonusu olabilir. Aldığınız hata aşağıdaki şekilde ise ve web uygulamalarınıza veya Central Administration web uygulamasına erişirken hata alıyorsanız aşağıdaki şekilde müdehale etmeniz gerekecektir.

“Loading this assembly would produce a different grant set from other instances”

Bu sorunu çözmek için hızlı bir çözüm olarak sorun yaşana uygulamanın web config’inde aşağıdaki şekilde olan değeri

şu şekilde değiştirmeniz yeterli olacaktır.

Ancak bu işlem Microsoft tarafından desteklenmiyor ve olası bir Microsoft destek işleminizde ürününüzün destek kapsamı dışına çıkmasına neden olabilir. Bu nedenle tüm web uygulamalarında bu işlemi yapmak yerine aşağıdaki şekilde registry üzerinden tek seferde düzenlemenizi yapabilirsiniz.

Start > Run > regedit sonrası “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework” anahtarına kadar gelin ve buraya yeni bir DWORD yaratın. İsim olarak “LoaderOptimization” kullanacağız. Ve varsayılan değer olarak “1” yazabilirsiniz.

İşlem sonrası IISRESET yapabilirsiniz ancak yapmasanızda geçerli olacaktır.

Belgelerin İstemci Uygulamasında Açılmasının Sağlanması

SharePoint web uygulamalarınızda dosyalarınız varsayılan olarak istemci uygulamasında açılabilmesi için temel bir dizi işlemi gerçekleştirmeniz gerekebilir. Öncelikli olarak bu işlemi kütüphane seviyesinde gerçekleştirmek için kütüphanenizin ayarlar bölümünden işlem yapabilirsiniz.

Kütüphane > Ayarlar > Gelişmiş Ayarlar > Belgeleri Tarayıcıda Açma bölümünden seçiminizi yapabilirsiniz.

 

Bu işlemin site seviyesinde gerçekleşebilmesi için site koleksiyonu özellikleri içerisinden “Belgeleri Varsayılan Olarak İstemci Uygulamada Aç” özelliğini aktive edebilirsiniz.

Yapacağınız bu işlem site koleksiyonunda yaratılacak yeni belge kitaplıklarında ilk maddede yaptığımız ayarda olduğu gibi varsayılan olarak istemci uygulamada açma ayarını düzenleyecektir. Ancak mevcut kütüphaneler için maalesef işe yaramayacak. Bu durumda her bir kütüphane için manuel olarak bu işlemi gerçekleştirebilir veya aşağıdaki gibi bir PowerShell script ile bu işlemin otomatik yapılmasını sağlayabilirsiniz.

 

RBS Blob Verisini Dosya Sisteminden Silememe Problemi

SharePoint ortamınızda uygulamalarınızın içerik bilgisini saklamak için SQL Server Remote Blob Storage (RBS) özelliğini kullanıyorsanız yaşamış olacağınız bir problem dosyaların SharePoint ortamından silinmesine rağmen dosya sisteminde yani diskinizde herhangi bir kullanım azalması olmamasıdır. Biraz daha açacak ve genel olarak SharePoint’in çöp kutusu mekanizmasına da bakacak olursak;

Bildiğiniz üzere SharePoint altyapınızda iki kademeli bir çöp kutusu mekanizması yer almaktadır. Bir kütüphaneden sildiğiniz bir dosya öncelikle ilgili sitenin çöp kutusuna taşınır. Varsayılan olarak burada kalma süresi 30 gündür ki bu değer Central Administration aracılığı ile değiştirilebilir. 30 günlük sürenin geçmesinin ardından eğer dosyayı restore etmediyseniz bu defa site koleksiyonunun çöp kutusuna taşınır. Ve yine varsayılan bir ayar olarak 30 gün de burada kalır. Ve ardından artık dosya tamamen silinir. Çöp kutusunda kaldığı süre içerisinde elbette bir soft delete işleminden bahsediyoruz. Dosya sadece silinmiş olarak işaretlenmekte ve restore komutunuz ile aynı şekilde geri alınabilmektedir. Buraya kadar varsayılan bir SharePoint sisteminin davranış şeklini inceledik. Eğer RBS kullanıyorsanız işte tam bu aşamada dosyanın halen blob storeda saklanmakta olduğunu, diskten silinmediğini gözlemleyebilirsiniz. Tabi bunu genelde tek bir dosya silme işleminde hissetmeyiz. Genellikle problemin farkına vardığımız an diskimizin sürekli dolması ve yüklü dosya silme işlemlerimizin ardından bile diskte bir azalma olmadığı zamanlardır.

Sharepoint ClientPeoplePicker Validasyon

Hazırlayacağınız sayfa veya webpartlar içerisinde SharePoint People Picker bileşenini kullanmanın yolu oldukça basit. Aşağıdaki gibi bir blok ile people picker’ı ekrana getirebilirsiniz.

People picker içerisinde geçerli bir kullanıcı bulunmaması durumunda kontrolünü yapmak için asp.net customValidator bileşenini kullanmak mümkün. Aşağıdaki gibi bir düzen ayarlayabilirsiniz.

Kontrolünüzü gerçekleştirmek için ise aşağıdaki gibi bir JavaScript işinizi görecektir.

 

SharePoint Online’da Şablondan Liste Yaratmak

 

SharePoint 2019 Neler Yeni, Neler Artık Yok?

ShareGate tarafından özetlenen SharePoint 2019’da neler yeni, neler artık geliştirilmiyor ve nelerden artık vazgeçmek zorundayız başlıklı blog yazısına buradan ulaşabilirsiniz.