Nasıl SqlRoleProvider Windows Authentication kullanarak yeni kullanıcı için bir varsayılan rolü ayarlarım?

oy
1

Ben sırasıyla kullanıcı kimlik ve rol yönetimi için Windows kimlik doğrulaması ve SqlRoleProvider kullanan bir uygulama var. Ben varsayılan olarak veritabanına eklemiş benim test kullanıcılarıyla iyi çalışıyor. Uygulama kullanıcıları (Windows kimlik bilgilerini kullanarak) giriş ve daha sonra bir temel kullanıcı olarak bu dahili uygulamayı kullanmak mümkün gerektirir. Kullanıcı bir üst düzey rolüne ilave gerekiyorsa, bir yönetici ilk günlüğüne sonra bu sorumlu olacaktır.

Bu sözlerimle ilk giriş yapan, nasıl varsayılan role kullanıcı eklersiniz? Mantıken, ben Roles.IsUserInRole (call) ve daha sonra da değilse eklemek gerekir biliyorum; ancak, bu nereye yapardın? Kullanmak Global.asax olay bulma konusunda sorun yaşıyorum.

Teşekkürler

DÜZENLEME: nedeniyle bağlantı dizesi web.config dışında saklanmasına izin için yeni sağlayıcıları yazma gereksinimlerine Ben tam üyelik sağlayıcı sistemi kullanarak değilim, senaryoyu biraz genişletin. Ben kayıt veya giriş sayfasının herhangi formu kullanarak ve benim geliştirilmiş SqlRoleProvider kullanıcı rollerini yönetir ise IIS Windows Tümleşik Kimlik doğrulama yönlerini ele izin vermem. Sistem sert kodlu testler aracılığıyla kurulum rolleri olan kullanıcılar için iyi çalışıyor. Ben sadece yeni kullanıcı eklemek için bir yol arıyorum (IIS tarafından doğrulanmış olacaktır kim) hemen varsayılan bir Kullanıcılar rolüne eklenecek. Ben bunu buldum; Ancak şimdi performans nedenleriyle her isteği üzerine ateş hale getirmenin yollarını inceleyerek ediyorum.

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


3 cevaplar

oy
1

Ben kazma ve biraz daha etrafında oynadıktan sonra çözümü bulmak mümkün oldu. Benim Global.asax dosyasında aşağıdaki kodu eklendi ve ben için umut ben ne gerçekleştirerek edilir.

protected void WindowsAuthentication_OnAuthenticate(object sender, WindowsAuthenticationEventArgs e)
{
    if (!Roles.IsUserInRole(e.Identity.Name, "Users"))
    {
        Roles.AddUsersToRole(new string[] { e.Identity.Name }, "Users");
    }
}

Ben her sayfa isteği ile bu kod yangınları beri endişeliyim. Bu durum oluştuğunda sınırlamak için daha iyi bir yolu var mı? Sadece yerine Global.asax ait açılış sayfasının page_load olayı bu kodu eklemek gerekir mi?

Cevap 09/12/2008 saat 21:51
kaynak kullanıcı

oy
0

Oturum veya kayıt varken neden koymuyorsun?

giriş, olayı işlemek ve bu in koydu. Lütfen giriş yapması her şey kontrol zaman.

Cevap 09/12/2008 saat 22:08
kaynak kullanıcı

oy
0

Ben kullanıcı getirildiği hemen sonra kullanıcıya varsayılan rolü eklersiniz.

Böyle gibi bir şey:

user = Membership.GetUser()
if (user != null)
{
  // default role 
  string[] defaultRoles = {"MyRole"};

  AddUsersToRoles(user, defaultRoles); 

}
Cevap 09/12/2008 saat 21:23
kaynak kullanıcı

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