Uygulama Hizmetleri Kullanan Bir Web Sitesi Yapılandırma (VB)

Scott Mitchell tarafından

Kodu indirin veya PDF 'yi indirin

ASP.NET sürüm 2,0, .NET Framework bir parçası olan ve Web uygulamanıza zengin işlevsellik eklemek için kullanabileceğiniz bir yapı blok Hizmetleri paketi olarak hizmet veren bir dizi uygulama hizmeti sunmuştur. Bu öğreticide, üretim ortamında uygulama hizmetlerini kullanmak için bir Web sitesinin nasıl yapılandırılacağı ve üretim ortamındaki Kullanıcı hesaplarını ve rolleri yönetme ile ilgili yaygın sorunları ele alınmaktadır.

Giriş

ASP.NET sürüm 2,0, .NET Framework bir parçası olan ve Web uygulamanıza zengin işlevsellik eklemek için kullanabileceğiniz bir yapı blok Hizmetleri paketi olarak hizmet veren bir dizi uygulama hizmeti sunmuştur. Uygulama Hizmetleri şunları içerir:

  • Üyelik -Kullanıcı hesapları oluşturmak ve yönetmek IÇIN bir API.
  • Roller -kullanıcıları gruplar halinde kategorilere ayırmak IÇIN bir API.
  • Profile -özel, kullanıcıya özgü içerik depolamaya YÖNELIK bir API.
  • Site haritası -daha sonra menüler ve içerik haritaları gibi gezinme denetimleriyle görüntülenebilecek bir hiyerarşi biçiminde bir site s mantıksal yapısını tanımlamaya YÖNELIK bir API.
  • Kişiselleştirme -genellikle Websiteleriyle kullanılan özelleştirme TERCIHLERINI korumak için bir API.
  • Sistem durumu izleme -çalışan bir Web uygulaması için performansı, güvenliği, hataları ve diğer sistem durumu ölçümlerini izlemeye YÖNELIK bir API.

Uygulama Hizmetleri API 'Leri belirli bir uygulamaya bağlı değildir. Bunun yerine, uygulama hizmetlerinin belirli bir sağlayıcıyı kullanmasını ve bu sağlayıcının belirli bir teknolojiyi kullanarak hizmeti uyguladığını söyleyebilirsiniz. Bir Web barındırma şirketinde barındırılan Internet tabanlı Web uygulamaları için en yaygın olarak kullanılan sağlayıcılar, SQL Server veritabanı uygulaması kullanan sağlayıcılardır. Örneğin, SqlMembershipProvider Üyelik API 'si için, Kullanıcı hesabı bilgilerini bir Microsoft SQL Server veritabanında depolayan bir sağlayıcıdır.

Uygulama hizmetleri ve SQL Server sağlayıcılarının kullanılması, uygulamayı dağıtma sırasında bazı güçlükleri ekler. Başlangıçlara yönelik olarak, uygulama Hizmetleri veritabanı nesnelerinin hem geliştirme hem de üretim veritabanlarında doğru şekilde oluşturulması ve uygun şekilde başlatılmış olması gerekir. Ayrıca, yapılması gereken önemli yapılandırma ayarları vardır.

Note

Uygulama Hizmetleri API 'Leri, çalışma zamanında API s uygulama ayrıntılarının sağlanmasını sağlayan bir tasarım modeli olan sağlayıcı modelikullanılarak tasarlanmıştır. .NET Framework, SqlMembershipProvider SqlRoleProvider bir SQL Server veritabanı uygulaması kullanan üyelik ve rol API 'leri için sağlayıcılar olan ve gibi kullanılabilecek bir dizi uygulama hizmeti sağlayıcısıyla birlikte gelir. Ayrıca özel bir sağlayıcı oluşturup eklenti ekleyebilirsiniz. Aslında, Book Incelemeleri Web uygulaması, site haritası API 'SI () için zaten bir özel sağlayıcı içeriyor ReviewSiteMapProvider ve bu, site haritasını Genres veritabanındaki verilerden ve tablolardaki verileri oluşturur Books .

Bu öğreticide, üyelik ve rol API 'Lerini kullanmak için kitap Incelemelerinin Web uygulamasını nasıl genişlettiğiyle ilgili bir bakış açıklanır. Daha sonra, SQL Server veritabanı uygulamasıyla uygulama hizmetleri 'ni kullanan bir Web uygulamasını dağıtmaya ve üretim ortamındaki Kullanıcı hesaplarını ve rolleri yönetme ile ilgili yaygın sorunları gidermeye geçer.

Kitap Inceleme uygulamasındaki güncelleştirmeler

Son iki öğreticilerde, kitap Incelemelerinin Web uygulaması statik bir Web sitesinden dinamik, veri odaklı bir Web uygulamasına, tarzları ve incelemeleri yönetmeye yönelik bir dizi yönetim sayfası ile tamamlanan bir şekilde güncelleştirildi. Ancak, bu yönetim bölümü şu anda korunmuyor. yönetim sayfası URL 'sini bilen (veya tahmin eden) herhangi bir Kullanıcı, sitemizdeki incelemeleri oluşturma, düzenleme veya silme işlemi yapabilir. Bir Web sitesinin belirli kısımlarını korumanın yaygın bir yolu, Kullanıcı hesaplarını uygulamak ve ardından belirli kullanıcılara veya rollere erişimi kısıtlamak için URL yetkilendirme kurallarını kullanmaktır. Bu öğreticiyle indirilebilir olan kitap Incelemeleri Web uygulaması, Kullanıcı hesaplarını ve rolleri destekler. Yönetici adlı tek bir role sahiptir ve yalnızca bu roldeki kullanıcılar yönetim sayfalarına erişebilir.

Note

Kitap Incelemelerinin Web uygulamasında üç Kullanıcı hesabı oluşturduğdum: Scott, Jisun ve gamze. Üç kullanıcının tümü aynı parolaya sahiptir: parola! Scott ve Jisun yönetici rolünde, Çiğdem değil. Yönetim dışı site sayfalarına hala anonim kullanıcılar erişebilir. Diğer bir deyişle, yönetmek istemediğiniz sürece siteyi ziyaret etmek için oturum açmanız gerekmez, bu durumda yönetici rolünde bir kullanıcı olarak oturum açmanız gerekir.

Kitap Inceleme uygulaması ana sayfası, kimliği doğrulanmış ve anonim kullanıcılar için farklı bir kullanıcı arabirimi içerecek şekilde güncelleştirilmiştir. Anonim bir Kullanıcı, sağ üst köşedeki bir oturum açma bağlantısı gördüğü siteyi ziyaret ederse. Kimliği doğrulanmış bir Kullanıcı "hoş geldiniz geri, Kullanıcı adı!" iletisini görür ve oturumu kapatmak için bir bağlantı. Ayrıca ~/Login.aspx , bir ziyaretçi kimlik doğrulaması için Kullanıcı arabirimi ve mantığını sağlayan bir oturum açma Web denetimi içeren bir oturum açma sayfası () vardır. Yalnızca Yöneticiler yeni hesaplar oluşturabilir. (Klasörde Kullanıcı hesapları oluşturmak ve yönetmek için sayfalar vardır ~/Admin .)

Üyelik ve rol API 'Lerini yapılandırma

Kitap Incelemeleri Web uygulaması, Kullanıcı hesaplarını desteklemek ve bu kullanıcıları rollere (yani, yönetici rolü) gruplamak için üyelik ve rol API 'Lerini kullanır. SqlMembershipProviderVe SqlRoleProvider sağlayıcı sınıfları bir SQL Server veritabanında hesap ve rol bilgilerini depolamak istediğimiz için kullanılır.

Note

Bu öğreticide, üyelik ve rol API 'Lerini destekleyecek bir Web uygulamasını yapılandırma konusunda ayrıntılı bir inceleme olması amaçlanmamıştır. Bu API 'Lere tam bakış ve bu Web sitesini kullanmak üzere yapılandırmak için gerçekleştirmeniz gereken adımlar için lütfen Web sitesi güvenlik öğreticilerimiokuyun.

Uygulama hizmetlerini bir SQL Server veritabanıyla kullanmak için, önce bu sağlayıcılar tarafından kullanılan veritabanı nesnelerini Kullanıcı hesabı ve rol bilgilerinin depolanmasını istediğiniz veritabanına eklemeniz gerekir. Bu önkoşul veritabanı nesneleri çeşitli tablolar, görünümler ve saklı yordamlar içerir. Aksi belirtilmediği takdirde, SqlMembershipProvider ve SqlRoleProvider sağlayıcı sınıfları uygulama s klasöründe bulunan adlı bir SQL Server Express sürümü veritabanını kullanır ASPNETDB App_Data ; böyle bir veritabanı yoksa, çalışma zamanında bu sağlayıcılar tarafından gerekli veritabanı nesneleriyle otomatik olarak oluşturulur.

Uygulama Hizmetleri veritabanı nesnelerini Web sitesinin uygulamaya özgü verilerin depolandığı veritabanında oluşturmak için bu mümkün ve genellikle idealdir. .NET Framework, aspnet_regsql.exe veritabanı nesnelerini belirtilen bir veritabanına yükleyen adlı bir araçla birlikte gelir. Bu aracı, bu nesneleri Reviews.mdf App_Data klasörde (geliştirme veritabanı) veritabanına eklemek için bir sonraki adımda kullandınız. Bu nesneleri üretim veritabanına eklerken Bu öğreticinin ilerleyen kısımlarında bu aracı nasıl kullanacağınızı inceleyeceğiz.

Uygulama Hizmetleri veritabanı nesnelerini, dışında bir veritabanına eklerseniz ASPNETDB , SqlMembershipProvider ve SqlRoleProvider sağlayıcı sınıfları yapılandırmasını uygun veritabanını kullanacak şekilde özelleştirmeniz gerekir. Üyelik sağlayıcısını özelleştirmek için içindeki bölümünde bir < Üyelik > öğesi ekleyin <system.web> Web.config ; Roller sağlayıcısını yapılandırmak için < roleManager > öğesini kullanın. Aşağıdaki kod parçacığında, uygulama Incelemeleri gözden geçirmeler Web.config ve üyelik ve roller API 'leri için yapılandırma ayarları gösterilmektedir. Her ikisinin de ReviewMembership ReviewRole ve sağlayıcılarını kullanan yeni bir sağlayıcıyı ve kayıt olduğunu unutmayın SqlMembershipProvider SqlRoleProvider .

<configuration>
    <system.web>
        ...

        <membership defaultProvider="ReviewMembership">
            <providers>
                <clear />

                <add type="System.Web.Security.SqlMembershipProvider" 
                     name="ReviewMembership" 
                     connectionStringName="ReviewsConnectionString" 
                     applicationName="BookReviews" />
            </providers>
        </membership>

        <roleManager enabled="true" defaultProvider="ReviewRole">
            <providers>
                <clear />

                <add type="System.Web.Security.SqlRoleProvider" 
                     name="ReviewRole" 
                     connectionStringName="ReviewsConnectionString" 
                     applicationName="BookReviews" />
            </providers>
        </roleManager>

        ...
    </system.web>
</configuration>

Web.configDosya <authentication> öğesi Ayrıca form tabanlı kimlik doğrulamasını destekleyecek şekilde yapılandırılmıştır.

<configuration>
    <system.web>
        ...

        <authentication mode="Forms" />

        ...
    </system.web>
</configuration>

Yönetim sayfalarına erişimi sınırlandırma

ASP.NET, belirli bir dosya veya klasöre Kullanıcı veya rol tarafından URL yetkilendirmesi özelliği aracılığıyla erişim izni vermenizi ya da reddetmeyi kolaylaştırır. ( IIS ile ASP.NET geliştirme sunucusu öğreticisi arasındaki temel farklılıklara ilişkin URL yetkilendirmesi kısaca ele ALıNMıŞTıR ve ııs Ile ASP.net GELIŞTIRME sunucusunun URL yetkilendirme kurallarını statik ve dinamik içerik için farklı şekilde nasıl uygulayacağınızı gösterdi.) Yönetici rolünde bu kullanıcılar hariç olmak üzere klasöre erişimi yasaklamak istiyoruz ~/Admin , bu klasöre URL Yetkilendirme kuralları eklememiz gerekiyor. Özellikle, URL yetkilendirme kurallarının yönetici rolünde kullanıcılara izin vermemesi ve diğer tüm kullanıcıları reddetmesi gerekir. Bu, Web.config ~/Admin klasöre aşağıdaki içeriğe sahip bir dosya eklenerek yapılır:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <authorization>
            <allow roles="Admin" />
            <deny users="*" />
        </authorization>
    </system.web>
</configuration>

ASP.NET s URL yetkilendirme özelliği hakkında daha fazla bilgi edinmek ve kullanıcıların ve rollerinin yetkilendirme kurallarını öğrenmek için nasıl kullanılacağı hakkında daha fazla bilgi için, Web sitemin güvenlik öğreticilerimin Kullanıcı tabanlı yetkilendirme ve rol tabanlı yetkilendirme öğreticilerini okuduğunuzdan emin olun.

Uygulama Hizmetleri kullanan bir Web uygulamasını dağıtma

Uygulama hizmetleri ve bir veritabanında uygulama hizmetleri bilgilerini depolayan bir sağlayıcı kullanan bir Web sitesi dağıtıldığında, uygulama hizmetleri için gereken veritabanı nesnelerinin üretim veritabanında oluşturulması zorunludur. Başlangıçta üretim veritabanı bu nesneleri içermez, bu nedenle uygulama ilk kez dağıtıldığında (veya uygulama hizmetleri eklendikten sonra ilk kez dağıtıldığında), bu önkoşul veritabanı nesnelerini üretim veritabanında almak için ek adımlar gerçekleştirmeniz gerekir.

Geliştirme ortamında oluşturulan kullanıcı hesaplarını üretim ortamına çoğaltmak istiyorsanız, uygulama hizmetleri 'ni kullanan bir Web sitesi dağıtımında başka bir zorluk ortaya çıkabilir. Üyelik ve roller yapılandırmasına bağlı olarak, geliştirme ortamında oluşturulan kullanıcı hesaplarını üretim veritabanına başarıyla kopyalayasanız bile, bu kullanıcılar üretimde Web uygulamasında oturum açamasa da olasıdır. Bu sorunun nedenine bakacağız ve bunun oluşmasını nasıl önleyebiliriz.

ASP.NET, Visual Studio 'dan başlatılabilen iyi bir Web sitesi yönetim aracı (WSAT) ile birlikte gelir ve Kullanıcı hesabı, roller ve yetkilendirme kurallarının Web tabanlı bir arabirim aracılığıyla yönetilmesini sağlar. Ne yazık ki, WSAT yalnızca yerel Web siteleri için geçerlidir; Yani, üretim ortamındaki Web uygulaması için Kullanıcı hesaplarını, rolleri ve yetkilendirme kurallarını uzaktan yönetmek için kullanılamaz. Üretim Web sitenizdeki WSAT benzeri davranışları uygulamak için farklı yöntemlere bakacağız.

ASPNETregsql.exe kullanarak veritabanı nesneleri ekleme _

Veritabanı dağıtma öğreticisi, verileri geliştirme veritabanından üretim veritabanına kopyalamayı ve bu tekniklerin uygulama Hizmetleri veritabanı nesnelerini üretim veritabanına kopyalamak için kesinlikle kullanılabileceğini gösterdi. Başka bir seçenek aspnet_regsql.exe de, uygulama Hizmetleri veritabanı nesnelerini bir veritabanından ekleyen veya kaldıran araç olur.

Note

aspnet_regsql.exeAraç, belirtilen bir veritabanında veritabanı nesnelerini oluşturur. Bu veritabanı nesnelerindeki verileri geliştirme veritabanından üretim veritabanına geçirmez. Geliştirme veritabanındaki kullanıcı hesabı ve rol bilgilerini üretim veritabanına kopyalamak için bir veritabanı dağıtma Öğreticisi ' nde ele alınan teknikleri kullanın.

Aracı kullanarak veritabanı nesnelerinin üretim veritabanına nasıl ekleneceğini inceleyelim aspnet_regsql.exe . Windows Gezgini 'ni açarak ve bilgisayarınızdaki .NET Framework sürüm 2,0 dizinine giderek başlayın,% WINDIR% \ Microsoft. NET\Framework\v2.0.50727. Aracı bulmanız gerekir aspnet_regsql.exe . Bu araç, komut satırından kullanılabilir, ancak aynı zamanda bir grafik kullanıcı arabirimi de içerir; aspnet_regsql.exe grafik bileşenini başlatmak için dosyaya çift tıklayın.

Aracı, amacını açıklayan bir giriş ekranı görüntüleyerek başlar. Şekil 1 ' de gösterilen "Kurulum seçeneği seçin" ekranına ilerlemek için Ileri ' ye tıklayın. Buradan, uygulama Hizmetleri veritabanı nesnelerini eklemeyi veya bir veritabanından kaldırmayı seçebilirsiniz. Bu nesneleri üretim veritabanına eklemek istiyoruz, "uygulama hizmetleri için SQL Server Yapılandır" seçeneğini belirleyin ve Ileri ' ye tıklayın.

Uygulama Hizmetleri için SQL Server yapılandırmayı seçin

Şekil 1: Uygulama Hizmetleri Için SQL Server yapılandırmayı seçin (tam boyutlu görüntüyü görüntülemek için tıklayın)

"Sunucu ve veritabanını seçin" ekranında, veritabanına bağlanmak için bilgi ister. Web barındırma şirketiniz tarafından sağlanan veritabanı sunucusunu, güvenlik kimlik bilgilerini ve veritabanı adını girin ve Ileri ' ye tıklayın.

Note

Veritabanı sunucunuzu ve kimlik bilgilerinizi girdikten sonra, veritabanı açılan listesini genişletirken bir hata alabilirsiniz. aspnet_regsql.exeAraç, sysdatabases sunucudaki veritabanlarının listesini almak için sistem tablosunu sorgular, ancak bazı Web barındırma şirketleri bu bilgilerin genel kullanıma açık olmaması için veritabanı sunucularını kilitler. Bu hatayı alırsanız, doğrudan açılan listeye veritabanı adını yazabilirsiniz.

Veritabanı bağlantı bilgilerinizi Içeren Aracı sağlayın

Şekil 2: veritabanını veritabanınızın bağlantı bilgileriyle sağlama (tam boyutlu görüntüyü görüntülemek için tıklayın)

Sonraki ekranda, uygulama Hizmetleri veritabanı nesneleri belirtilen veritabanına ekleneceklerinde, gerçekleşecek şekilde olan eylemler özetlenmektedir. Bu eylemi gerçekleştirmek için Ileri ' ye tıklayın. Birkaç dakika sonra, veritabanı nesnelerinin eklendiğini belirten son ekran görüntülenir (bkz. Şekil 3).

Başarılı! Uygulama Hizmetleri veritabanı nesneleri üretim veritabanına eklendi

Şekil 3: başarılı! Uygulama Hizmetleri veritabanı nesneleri üretim veritabanına eklendi (tam boyutlu görüntüyü görüntülemek Için tıklayın)

Uygulama Hizmetleri veritabanı nesnelerinin üretim veritabanına başarıyla eklendiğini doğrulamak için SQL Server Management Studio açın ve üretim veritabanınıza bağlanın. Şekil 4 ' te gösterildiği gibi, artık veritabanınızda,,, vb. uygulama Hizmetleri veritabanı tablolarını görmeniz gerekir aspnet_Applications aspnet_Membership aspnet_Users .

Veritabanı nesnelerinin üretim veritabanına eklendiğini doğrulayın

Şekil 4: veritabanı nesnelerinin üretim veritabanına eklendiğini onaylayın (tam boyutlu görüntüyü görüntülemek için tıklayın)

Yalnızca, aspnet_regsql.exe uygulama hizmetlerini kullanmaya başladıktan sonra Web uygulamanızı ilk kez veya ilk kez dağıttığınızda bu aracı kullanmanız gerekir. Bu veritabanı nesneleri üretim veritabanından olduktan sonra, yeniden eklenmesi veya değiştirilmesi gerekmez.

Kullanıcı hesaplarını geliştirmeden üretime kopyalama

SqlMembershipProvider SqlRoleProvider Uygulama hizmetleri bilgilerini bir SQL Server veritabanında depolamak için ve sağlayıcı sınıflarını kullanırken, Kullanıcı hesabı ve rol bilgileri,,,, ve gibi çeşitli veritabanı tablolarında depolanır aspnet_Users aspnet_Membership aspnet_Roles aspnet_UsersInRoles . Geliştirme sırasında geliştirme ortamında Kullanıcı hesapları oluşturursanız, ilgili kayıtları geçerli veritabanı tablolarından kopyalayarak, bu kullanıcı hesaplarını üretimde çoğaltabilirsiniz. Uygulama Hizmetleri veritabanı nesnelerini dağıtmak için veritabanı Yayımlama Sihirbazı 'Nı kullandıysanız kayıtları kopyalamak için de seçmiş olabilirsiniz; Bu, geliştirmede oluşturulan kullanıcı hesaplarının de üretimde olması ile sonuçlanacaktır. Ancak, yapılandırma ayarlarınıza bağlı olarak, hesaplarını geliştirmede oluşturulan ve üretime kopyalanan kullanıcıların üretim Web sitesinden oturum açmadığını fark edebilirsiniz. Ne sağlar?

SqlMembershipProviderVe SqlRoleProvider sağlayıcı sınıfları, tek bir veritabanının birden çok uygulama için kullanıcı deposu olarak kullanılabileceği şekilde tasarlanmıştı. bu nedenle, her uygulamanın teorik olarak, kullanıcıların aynı ada sahip olan ve çakışan Kullanıcı adları ve rolleri vardır. Bu esnekliğe izin vermek için veritabanı tablodaki uygulamaların bir listesini tutar aspnet_Applications ve her Kullanıcı bu uygulamalardan biriyle ilişkilendirilir. Özellikle, aspnet_Users tabloda ApplicationId her bir kullanıcıyı tablodaki bir kayda bağlayan bir sütun bulunur aspnet_Applications .

Sütunun yanı sıra, ApplicationId aspnet_Applications tablo, ApplicationName uygulama için daha fazla insan dostu bir ad sağlayan bir sütun da içerir. Bir Web sitesi, oturum açma sayfasından bir kullanıcı kimlik bilgilerini doğrulama gibi bir kullanıcı hesabıyla çalışmayı denediğinde, SqlMembershipProvider sınıfa hangi uygulamanın çalıştığını söylemelidir. Genellikle bunu uygulama adı sağlayarak yapar ve bu değer özellikle özniteliği aracılığıyla sağlayıcı yapılandırma yapılandırmasından gelir Web.config applicationName .

Ancak applicationName öznitelik içinde belirtilmemişse ne olur Web.config ? Böyle bir durumda, üyelik sistemi uygulama kök yolunu değer olarak kullanır applicationName . applicationNameÖzniteliği içinde açıkça ayarlanmamışsa, Web.config geliştirme ortamının ve üretim ortamının farklı bir uygulama kökü kullanmasına ve bu nedenle uygulama hizmetlerindeki farklı uygulama adlarıyla ilişkilendirilecektir. Bu tür bir uyuşmazlık oluşursa, geliştirme ortamında oluşturulan kullanıcıların ApplicationId ApplicationId , üretim ortamı değeriyle eşleşmeyen bir değeri olacaktır. Net sonuç, bu kullanıcıların oturum açabilmeyeceği bir sonuçlardır.

Note

Bu durumda kendinizi buldıysanız-eşleşmeyen bir değerle üretime kopyalanmış Kullanıcı hesapları ile, ApplicationId Bu hatalı ApplicationId değerleri üretimde kullanılmak üzere güncelleştirmek için bir sorgu yazabilirsiniz ApplicationId . Güncelleştirildikten sonra, hesapları geliştirme ortamında oluşturulan kullanıcılar artık üretimde Web uygulamasında oturum açabiliyor.

Bu durumda, iki ortamın ApplicationId applicationName Web.config tüm uygulama hizmetleri sağlayıcılarınızda ' de özniteliği aynı şekilde kullanmasını sağlamak için uygulayabileceğiniz basit bir adım vardır. applicationName <membership> <roleManager> Bu kod parçacığının gösterdiği gibi, ve öğelerinde özniteliğini açıkça "bookincelemeleri" olarak ayarladı Web.config .

<membership defaultProvider="ReviewMembership">
    <providers>
        <clear />

        <add type="System.Web.Security.SqlMembershipProvider" 
             name="ReviewMembership" 
             connectionStringName="ReviewsConnectionString" 
             applicationName="BookReviews" />
    </providers>
</membership>

applicationNameÖzniteliği ve bunun arkasındaki ktionale ayarlama hakkında daha fazla bilgi Için Scott Guthrie s blog gönderisine başvurun, ASP.NET üyeliğini ve diğer sağlayıcıları yapılandırırken her zaman ApplicationName özelliğini ayarlayın.

Üretim ortamında kullanıcı hesaplarını yönetme

ASP.NET Web sitesi yönetim aracı (WSAT) Kullanıcı hesapları oluşturmayı ve yönetmeyi, rolleri tanımlamanızı ve uygulamayı ve Kullanıcı ve rol tabanlı yetkilendirme kurallarını yazımı kolaylaştırır. Çözüm Gezgini gidip ASP.NET yapılandırma simgesine tıklayarak veya Web sitesine veya proje menülerine gidip ASP.NET yapılandırma menü öğesini seçerek, Visual Studio 'dan WSAT 'ı başlatabilirsiniz. Ne yazık ki, WSAT yalnızca yerel Web siteleriyle çalışabilir. Bu nedenle, üretim ortamındaki Web sitesini yönetmek için iş istasyonunuzdan WSAT 'ı kullanamazsınız.

İyi haberler, WSAT tarafından sağlanan tüm işlevlerin üyelik ve roller API 'Leri aracılığıyla programlı bir şekilde kullanılabilmesini sağlamadır; Ayrıca, WSAT ekranlarından birçoğu standart ASP.NET login ile ilgili denetimleri kullanır. Kısaca, Web sitenize gerekli yönetim özelliklerini sunan ASP.NET sayfaları ekleyebilirsiniz.

Daha önceki bir öğreticinin, kitap Incelemeleri Web uygulamasını bir klasör içerecek şekilde güncelleştirdiklerini ~/Admin ve bu klasörün yalnızca yönetici rolündeki kullanıcılara izin verecek şekilde yapılandırıldığını unutmayın. Bu klasöre, CreateAccount.aspx yöneticinin yeni bir kullanıcı hesabı oluşturanmış adlı bir sayfa ekledim. Bu sayfa, yeni bir kullanıcı hesabı oluşturmak için Kullanıcı arabirimi ve arka uç mantığını göstermek üzere CreateUserWizard denetimini kullanır. Ne kadar çok, denetimi yeni kullanıcının da yönetici rolüne eklenip eklenmeyeceğini belirten bir onay kutusu içerecek şekilde özelleştirdim (bkz. Şekil 5). Biraz iş sayesinde, başka bir şekilde WSAT tarafından sağlanabilecek Kullanıcı ve rol yönetimiyle ilgili görevleri uygulayan özel bir sayfa kümesi oluşturabilirsiniz.

Note

Üyelik ve rol API 'Lerini kullanma hakkında daha fazla bilgi için, oturum açma ile ilgili ASP.NET Web denetimleriyle birlikte, Web sitesi güvenlik öğreticilerimiokuduğunuzdan emin olun. CreateUserWizard denetimini özelleştirme hakkında daha fazla bilgi için Kullanıcı hesapları oluşturma ve ek kullanıcı bilgileri öğreticilerini depolama ya da CreateUserWizard denetimini özelleştiren Erich Peterson s makalesini inceleyin.

Yöneticiler yeni kullanıcı hesapları oluşturabilir

Şekil 5: Yöneticiler yeni kullanıcı hesapları oluşturabilir (tam boyutlu görüntüyü görüntülemek için tıklatın)

WSAT 'ın tüm işlevlerine ihtiyacınız varsa, kendi web sitesi yönetim aracınızı(yazarın can) özel bır WSAT benzeri araç oluşturma sürecinde izlenecek bir şekilde gözden geçirin. Dan uygulama kaynak kodunu paylaşır (C# ' de) ve barındırılan Web sitenize eklemek için adım adım yönergeler sağlar.

Özet

Uygulama Hizmetleri veritabanı uygulamasını kullanan bir Web uygulaması dağıtıldığında, önce üretim veritabanının gerekli veritabanı nesnelerine sahip olduğundan emin olmanız gerekir. Bu nesneler, veritabanı dağıtma öğreticisinde açıklanan teknikler kullanılarak eklenebilir. Alternatif olarak, aspnet_regsql.exe Bu öğreticide gördüğünüz gibi aracını da kullanabilirsiniz. Geliştirme ve üretim ortamlarında kullanılan uygulama adının (geliştirme ortamında oluşturulan kullanıcı ve rollerin üretimde geçerli olmasını istiyorsanız önemli olan) ve üretim ortamındaki kullanıcıları ve rolleri yönetme tekniklerinden daha fazla zorluk gösteren diğer sorunlar.

Programlamanın kutlu olsun!

Daha Fazla Bilgi

Bu öğreticide ele alınan konular hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın: