Avatar billede everclear Praktikant
09. juli 2006 - 22:55 Der er 3 kommentarer

Brugere sorteret efter CreationDate

Jeg er ved at lave en liste over nyeste brugere på et site og benytter Membership, så det ville jo være oplagt hvis jeg kunne tilgå en de forskellige brugeres CreationDate (da jeg jo skal have de 5 nyeste brugere f.eks). Er der en smart måde at gøre dette på, hvis jeg skal have det returneret som f.eks. en MembershipUserCollection?
Avatar billede snepnet Nybegynder
11. juli 2006 - 16:57 #1
Du kan lave en specialisering af den SqlMembershipProvideren, hvor du lægger din egen metode på (GetNewestUser(int limit) - ell.)... Tror ikke der er nogen indbygget mulighed for det.
Mvh
Avatar billede everclear Praktikant
12. juli 2006 - 00:09 #2
Hmmmm.....mit problem er, at de nyeste brugere skal vises ofte. Altså forstået på den måde, at funktionen skal kaldes mange gange; samtidig er der mange brugere, så det skal helst ikke være noget med at loope alle brugerne igennem hver gang og tjekke CreationDate.

Hvordan tilgår man SqlMembershipProvideren så jeg får mulighed for at gøre det på den måde?
Avatar billede snepnet Nybegynder
12. juli 2006 - 09:05 #3
Du kan ganske let lave en specialiseret provider (til at starte med kan du bare lægge den i en klasse i app_code folderen).

public class SpecialMemberShipProvider : SqlMemberShipProvider
{
  // og den særlige metode du har brug for:
  public MembershipUserCollection GetNewestUsers(int limit)
  {
    // ... Din implementering
  }
}

Og du kan så konfigurere den op i web.config (under system.web):

<membership defaultProvider="SpecialProvider">
  <providers>
    <add
      connectionStringName="LocalSqlServer"
      minRequiredNonalphanumericCharacters="0"
      minRequiredPasswordLength="3"
      requiresQuestionAndAnswer="false"
      name="SpecialProvider"
      type="SpecialMemberShipProvider"/>
  </providers>
</membership>

Og.... Du kan så skrive kode som denne:

SpecialMemberShipProvider provider = Membership.Provider as SpecialMemberShipProvider;
if (provider != null)
{
    MembershipUserCollection users = provider.GetNewestUsers(10);
}

Hvis du bruger reflector kan du jo så kigge i den eksisterende SqlMemberShipProviders med det - ellers ligger er source-koden gjort tilgængelig:
http://weblogs.asp.net/scottgu/archive/2006/04/13/442772.aspx

Mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester