Hogyan lehet beállítani alapértelmezett szerepet egy új felhasználó Windows-hitelesítést a SqlRoleProvider?

szavazat
1

Van olyan alkalmazás, amely Windows-hitelesítést és SqlRoleProvider a felhasználói hitelesítés és menedzsment szerepe volt. Ez jól működik az én teszt a felhasználókat, hogy adtam hozzá az adatbázishoz alapértékekre. Az alkalmazás a felhasználók számára a bejelentkezést (Windows hitelesítő), és így képes lesz használni ezt a belső alkalmazása, mint alapvető „felhasználó”. Ha a felhasználó kell hozzá, hogy a magas szintű szerepet, egy admin feladata lenne ez után az első bejelentkezés.

Ezzel azt mondta, hogyan adhatok felhasználót az alapértelmezett szerepet, amikor először jelentkezzen be? Logikusan, tudom, hogy kellene hívni Roles.IsUserInRole (), majd adja hozzá őket, ha nem; ha azonban tenném ezt? Gondjaim tájoló, amely esemény a Global.asax használható.

Kösz

EDIT: Bővíteni a forgatókönyv egy kicsit, én nem használ egy teljes tagságának szolgáltató rendszer miatt követelményeket ír az új szolgáltatókat, hogy a connection stringet kell tárolni kívül web.config. Én nem használ semmilyen regisztrációt vagy belépés oldalra, majd hagyta, hogy a Windows beépített hitelesítés az IIS kezeli a hitelesítés szempontokat, miközben a továbbfejlesztett SqlRoleProvider kezeli a felhasználói szerepkörök. A rendszer jól működik, a felhasználók számára, hogy beállít szerepeket keresztül nehéz kódolni teszteket. Én csak keres egy módja annak, hogy az új felhasználók (akik hitelesítik IIS), hogy azonnal bekerül egy alapértelmezett „Users” szerepét. Azt hiszem, megtaláltam azt; Azonban én most vizsgálja, hogy hogyan, hogy ez nem a tűz után minden kérést a teljesítmény miatt.

A kérdést 09/12/2008 21:13
a forrás felhasználó
Más nyelveken...                            


3 válasz

szavazat
1

Voltam képes megtalálni a megoldást, miután ásni és játék körül egy kicsit. Én hozzá a következő kódot a Global.asax fájlt, akkor az, amit véghez remélek.

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

Aggódom, mivel ezt a kódot tüzeket minden oldal kérés. Van egy jobb módja annak, hogy korlátozzák, ha ez bekövetkezik? Kell hozzá ezt a kódot a nyitóoldal Page_Load esemény helyett Global.asax?

Válaszolt 09/12/2008 21:51
a forrás felhasználó

szavazat
0

Miért ne tedd, ha a regisztráció és belépés?

Ha a belépés, fogantyú az esetben, és tegye ezt. Ellenőrizze minden alkalommal ők be.

Válaszolt 09/12/2008 22:08
a forrás felhasználó

szavazat
0

Hozzáteszem az alapértelmezett szerepe a felhasználó közvetlenül a felhasználói volt erőltetett.

Olyasmi, mint például:

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

  AddUsersToRoles(user, defaultRoles); 

}
Válaszolt 09/12/2008 21:23
a forrás felhasználó

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