ASP.NET Hesap bazlı arama

oy
5

do Yeni SaaS hizmeti için ASP.NET kullanarak bakıyorum, ama benim aşkına ben (örn 37signals) en SaaS uygulamaları gibi alt alanlar dayalı hesap aramalarını nasıl anlamaya görünüyor olamaz.

Ben yourname.mysite.com teklif eğer (şirketinizin adını ve benzeri görüntüleme) doğru şablonu yük böylece Örneğin, o zaman nasıl ASP.NET (MVC özellikle) alt alan ayıklamak için kullanırdınız? düzenli yönlendirme yapılabilir mi?

Bu ASP.NET bunu yapmak için kolay bir yol olmalı böylece SaaS ortak bir şey gibi görünüyor; Ben Ruby on Rails gibi diğer çerçeveler için bunu yapmak eklentileri olduğunu biliyoruz.

Oluştur 09/12/2008 saat 17:59
kaynak kullanıcı
Diğer dillerde...                            


4 cevaplar

oy
3

Bu benim için çalışıyor:

    //--------------------------------------------------------------------------------------------------------------------------
    public string GetSubDomain()
    {
        string SubDomain = "";

        if (Request.Url.HostNameType == UriHostNameType.Dns)
            SubDomain = Regex.Replace(Request.Url.Host, "((.*)(\\..*){2})|(.*)", "$2");
        if (SubDomain.Length == 0)
            SubDomain = "www";
        return SubDomain;
    }

Ben doğrusu IIS araçları kullanarak ayrı siteler kurmak yerine aynı web uygulaması içinde birden fazla hesap işlemek istediğini tahmin ediyorum. Bizim çalışmamızda, her bir alt alan için yeni bir web sitesi oluşturma başladı ama bu yaklaşım iyi ölçek değildir bulduk - Eğer bir güncelleme yayınlayacak ve daha sonra onlarca siteyi değiştirmek zorunda, özellikle! Böylece, sana teklif tam olarak ne yapıyor deneyimi değerinde birkaç yıl dayanan yukarıda önerilen bu yaklaşımı yerine sunucu odaklı teknikler tavsiye edersiniz.

Sadece Yukarıdaki kod bu tamamen oluşmuş URL (daha doğrusu, diyelim ki, bir IP adresi yerine) ve alt alan döndüren emin olur. Oldukça yüksek hacimli bir ortamda bizim için iyi çalıştı.

Cevap 15/12/2008 saat 15:22
kaynak kullanıcı

oy
2

Sen bu pick up gerekir SunucuDeğişkenleri koleksiyonu, ama önce düzgün çalışması için IIS ve DNS yapılandırmanız gerekir. Yani 37signals muhtemelen Apache veya başka açık kaynak, unix web sunucusu kullanmak biliyorum. Apache üzerinde bu şekilde anılır Virtual Hosting .

IIS ile Bunu yapmak için IIS (application.mysite.com) uygulamanıza işaret her alan için yeni bir DNS girişi oluşturmak (application.mysite.com bir CNAME yourname.mysite.com oluşturun) gerekir.

Daha sonra IIS uygulamasında bir konak başlığı girişi oluşturmak başlık yourname.mysite.com kabul edecek (application.mysite.com). Kullanıcılar aslında application.mysite vuracak, com ancak adres özel alt etki alanıdır. Daha sonra siteyi özelleştirmek için nasıl karar değeri elde etmek SunucuDeğişkenleri koleksiyonuna erişin.

Not: Eğer gereksinimlere bağlı takip edebilecek birkaç alternatif uygulama vardır.

  • Bir donanım yük dengeleyici ev sahibi başlık işlemini Kulp ve web uygulamasına geçmek için özel bir HTTP üst oluşturmak (daha büyük olasılıkla 37signals web sunucusu güvenmek yerine, bunu).
  • her uygulama için yeni bir web uygulaması ve ana başlığını oluşturun. Bu muhtemelen kullanıcılar çok sayıda verimsiz bir uygulama olmakla birlikte, bazı insanlar için daha iyi izolasyon ve güvenlik sunabilir.
Cevap 09/12/2008 saat 18:22
kaynak kullanıcı

oy
1

Joker alt alanları destekleyecek şekilde DNS yapılandırmanız gerekir. Böyle IP adresine işaret A kaydı ekleyerek yapılabilir:

* A 1.2.3.4

onun yapılması kez alan adı size buggs yukarıda adı geçen kullanıcı gibi, HTTP_HOST sunucu değişkeni bölerek alabilirsiniz kök etki, gönderilecek önce, her ne yazın:

 string user = HttpContext.Request.ServerVariables["HTTP_HOST"].Split(".")

//use the user variable to query the database for specific data

PS. Eğer joker etki çalışması için zorunlu olduğundan bir, muhtemelen onlardan eşsiz bir IP ek yazılımın zorunda olacak barındırma paylaşılan kullanıyorsanız. Kullandığınız Bir Zaten kendi IP'ye sahip barındırma adanmış.

Cevap 05/01/2009 saat 23:36
kaynak kullanıcı

oy
0

Ben yaptım yolu HttpContext.Request.ServerVariables [ "HTTP_HOST"]., Split ( "") uygulamasıdır.

Daha fazla yardıma ihtiyacınız olursa bana bildirin.

Cevap 15/12/2008 saat 15:19
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more