in Eski Blog Yazılarım

Microsoft FTP 7.5 için İpucu (useDomainNameAsHostName)

MaestroPanel için Windows Server 2008 R2 ile birlikte gelen Microsoft FTP 7.5 desteği verdik fakat Hoster’ların çok alışık olmadığı bir authentication yöntemi var.

Microsoft FTP 7.5 ile birlikte Vhost desteği gelmiş yani FTP alanları birbirinden tamamen izole olacak şeklide çalışması sağlanmış. Bu Ms FTP’nin hem daha güvenli, hemde daha yönetilebilir olmasını sağlamış.

Bununla beraber IIS 6.0’da alışık olduğumuz kullanıcı adı ve şifre ile giriş yaptığımız kimlik doğrulaması yerine Domain|Kullanıcı adı ve Şifre şeklinde bir kimlik doğrulama mekanizması konulmuş.

Örnek vermek gerekirse.

oguzhan.info MS FTP 7.5 üzerinde çalışıyor diyelim ve FTP kullanıcı adımda ogzftp olsun, şifremde p@sssw0rd olsun. Login olabilmem için

Kullanıcı adı: oguzhan.info|ogzftp
Şifre: p@ssw0rd

girmem gerekiyor.

| pipe karakterini domain ile kullanıcı adınız arasına koymalısınız. Bunu kaldırabilirmiyiz diye biraz araştırırken, kaldırılamdığını öğrendim fakat biraz daha son kullanıcıya yakın hale getirebilmemiz mümkün.

Aşağıdaki script ile | pipe karakteri yerine "@" veya "" karakteride kullanabilmeniz mümkün.

appcmd.exe set config  -section:system.ftpServer/serverRuntime /hostNameSupport.useDomainNameAsHostName:"True"  /commit:apphost

C# Kodunu vermek gerekirse.

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {

    private static void Main() {
        
        using(ServerManager serverManager = new ServerManager()) { 
            Configuration config = serverManager.GetApplicationHostConfiguration();
            
            ConfigurationSection serverRuntimeSection = config.GetSection("system.ftpServer/serverRuntime");
            
            ConfigurationElement hostNameSupportElement = serverRuntimeSection.GetChildElement("hostNameSupport");
            hostNameSupportElement["useDomainNameAsHostName"] = true;
            
            serverManager.CommitChanges();
        }
    }
}

Bu işelmlerden sonra son kullanıcıya domain.com@username veya domain.comusername şeklinde kullanıcı adı verebilirsiniz.

Bu şık olmayan kullanıcı adından tamamen kurtulmak için FTP 7.5 için geliştirme yapabileceğiniz programlama arayüzleri mevcut. Örneğin FtpAuthenticationProvider kullanarak ayrıca kendiniz bir kimlik doğrulama yazabilirsiniz veya IIS 7.5 üzerinde yine IIS 6.0’ın FTP serverını kullanabilirsiniz.

Yorum Bırak

Comment