Merhaba arkadaşlar bugün sizlere sharepoint ortamında dışarıya anonim erişime açık bir site de listelere veri girişimde güvenliği nasıl sağlayacağınızdan ve C# tarafında listeye nasıl sorunsuz veri ekleyebileceğinizden bahsedeceğim.
İlk olarak normal bir şekilde sharepoint listesine veri ekleme işleminin nasıl yapıldığını görelim.
1 2 3 4 5 6 7 8 9 10 |
SPSite site = SPContext.Current.Site; SPWeb web = site.RootWeb; SPList list = web.Lists.TryGetList("TestList"); SPListItem addItem = list.AddItem(); addItem["Title"] = "Yunus Emre Araç"; addItem.Update(); |
Gördüğünüz gibi “SPContext” kullanarak sitemize bağlanıyoruz ve listemize erişim ekleme işlemini gerçekleştiriyoruz. Burada ekleme yapan kullanıcının listeye yetkisi olduğu sürece sorun olmamaktadır. Yetkisi olmasın ama yinede ekleyebilsin diyorsanız ekstra “SPSecurity.RunWithElevatedPrivileges” kullanmanız yeterli olacaktır. Onuda gösterecek olursak eğer aşağıdaki gibi kullanılabilir.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SPSecurity.RunWithElevatedPrivileges(delegate () { SPSite site = SPContext.Current.Site; SPWeb web = site.RootWeb; SPList list = web.Lists.TryGetList("TestList"); SPListItem addItem = list.AddItem(); addItem["Title"] = "Yunus Emre Araç"; addItem.Update(); }); |
Bu senaryoların dışında da anonim erişime açtığınız bir site de anonim kullanıcıları için listelere ekleme ya da düzenleme yetkisi vermeniz güvenlik açığına sebep olacaktır. Bundan dolayı burada yine “SPSecurity.RunWithElevatedPrivileges” kullanmanız gerekecektir ama bu tek başına yeterli olmayacaktır. Siteye “new SPSite” ile bağlanılması gerekecek ve web bağlantısının “AllowUnsafeUpdates” özelliği true yapılarak işlemden sonra tekrar false yapılması gerekmektedir. Site url adresini de RunWithElevatedPrivileges dışında alınması gerekmektedir.
Bu durumları göz önüne aldığımızda güncel kod bloğumuz aşağıdaki gibi olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
string siteUrl = SPContext.Current.Site.Url; SPSecurity.RunWithElevatedPrivileges(delegate () { SPSite site = new SPSite(siteUrl); SPWeb web = site.RootWeb; web.AllowUnsafeUpdates = true; SPList list = web.Lists.TryGetList("TestList"); SPListItem addItem = list.AddItem(); addItem["Title"] = "Yunus Emre Araç"; addItem.Update(); web.AllowUnsafeUpdates = false; }); |
Yukarıdaki şekilde kodunuzu revize ettiğiniz zaman anonim kullanıcı tarafında herhangi bir güvenlik açığı bırakmadan sorunsuz bir şekilde listeye kayıt ekleme işlemini gerçekleştirebilirsiniz.
İlk Yorumu Siz Yapın