Forum
Arkadaşlar merhaba,
fileupload ile dosyaları belirttiğim bir klasöre kaydetmek istiyorum fakat bu klasöre yazma yetkisi sadece domainadı\ozgur adlı kullanıcıda var.
Bu durumda klasöre bu dosyayı kopyalarken bu kullanıcının yetkileriyle dosyayı yaz nasıl derim?
Directory.CreateDirectory("C:\\OZGUR\\" + lblPlaka.Text);
IList<HttpPostedFile> SecilenDosyalar = FileUpload1.PostedFiles;
int adet = SecilenDosyalar.Count();
for (int i = 0; i < SecilenDosyalar.Count; i++)
{
FileUpload1.PostedFiles[i].SaveAs("C:\\OZGUR\\" + lblPlaka.Text+" + FileUpload1.PostedFiles[i].FileName);
}
https://www.google.com.tr/search?q=asp.net+file+upload+y%C3%B6ntemi
'balık vermez, nasıl tutulabildiğine yönlendirir'
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız. Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz. Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Merhaba,
Dosyaları kaydetmek istediğiniz klasörün yazma izni sadece "domainadı\ozgur" kullanıcısında olduğu için, dosyaları kaydetmek için bu kullanıcının yetkilerini kullanmanız gerekiyor. Bunu yapmak için, .NET Framework tarafından sağlanan System.Security.Principal ve System.Security.AccessControl sınıflarını kullanabilirsiniz. Aşağıdaki kod örneği, dosya için "domainadı\ozgur" kullanıcısının izinlerini ayarlamak için kullanılabilir:
string klasorYolu = "C:\\OZGUR\\" + lblPlaka.Text;
// Klasörü oluşturunuz (eğer varsa yok sayın)
Directory.CreateDirectory(klasorYolu);
// Dosya için "domainadı\ozgur" kullanıcısının izinlerini alın
string kullaniciAdi = "domainadı\\ozgur";
NTAccount kullaniciHesabi = new NTAccount(kullaniciAdi);
SecurityIdentifier kullaniciSID = (SecurityIdentifier)kullaniciHesabi.Translate(typeof(SecurityIdentifier));
FileSystemAccessRule izin = new FileSystemAccessRule(kullaniciSID, FileSystemRights.Write, AccessControlType.Allow);
// Dosya için izinleri ayarlayın
DirectoryInfo klasor = new DirectoryInfo(klasorYolu);
DirectorySecurity klasorIzinleri = klasor.GetAccessControl();
klasorIzinleri.AddAccessRule(izin);
klasor.SetAccessControl(klasorIzinleri);
// Dosyaları kopyalayın
foreach (HttpPostedFile dosya in SecilenDosyalar)
{
string dosyaYolu = Path.Combine(klasorYolu, dosya.FileName);
dosya.SaveAs(dosyaYolu);
}
Bu kod, öncelikle "domainadı\ozgur" kullanıcısının kimliğini alır ve bu kullanıcıya yazma izni veren bir FileSystemAccessRule nesnesi oluşturur. Daha sonra, klasörün mevcut izinlerini alır, yeni izni ekler ve değişiklikleri uygular. Son olarak, dosyaları belirtilen klasöre kaydeder.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Hocam çok teşekkür ederim öncelikle. Şuan itibariyle çalışıyor.
Şimdide oluşturduğum bu klasörü açtırmayla ilgili sorun yaşıyorum. Localde çalıştırdığımda açılıyor. Server üzerinden çalıştırdığımda access denied hatası alıyorum.
string dosyakonumu = @"\\\\192.168.10.126\\Ortak";
var psi = new System.Diagnostics.ProcessStartInfo() { FileName = dosyakonumu, UseShellExecute = true };
System.Diagnostics.Process.Start(psi);
kodunuzda hata var.
'balık vermez, nasıl tutulabildiğine yönlendirir'
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız. Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz. Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
@ibrahimyildiz merhaba,
Doğrusunu yazarsanız sevinirim.
Ama bu doğru bir yöntem değil, çünkü buradaki amacımız yol göstermek, danışmanlık hizmeti vermiyoruz.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
"Access denied" hatası nedeninin erişim yetkileriniz ile ilgili olma ihtimali yüksek. NTFS izinlerini kontrol etmenizi öneririm. Aşağıdaki makalemiz yönlendirici olacaktır. İyi çalışmalar.