Vor einigen Tagen hat mir Daniel Müller per Email ein Problem (und auch gleich die Lösung) mit dem Modul DNNSubscriber gesendet.
Das Problem (ein Performance Problem) hat zwar keine echten Auswirkungen auf die Funktionstüchtigkeit des Moduls, allerdings könnte man das Problem als echte Performance Bremse ansehen.
Folgendes habe ich da (warum auch immer) in der Methode IsUserInRole eingebaut:
protected
bool IsUserInRole(string RoleName)
{
RoleController objRoles =new RoleController();
ArrayList strUserRole;
strUserRole = objRoles.GetUsersInRole(this.PortalId,RoleName);
foreach(UserRoleInfo uri in strUserRole)
{
if (uri.UserID == this.UserId)
{
returntrue;
}
}
returnfalse;
}
Warum auch immer ich diesen Code eingebaut habe (eventuell war es wieder mal zu spät) der Code ist natürlich eine Peformance Bremse wenn einige hundert oder tausend Benutzer registriert sind.
Der Code wird also wie folgt abgeändert:
protected
bool IsUserInRole(string RoleName)
{
return DotNetNuke.Security.PortalSecurity.IsInRole(RoleName) ;
}
Wie man sieht, kürzer, besser, effektiver.
Danke Daniel.
Die neue Version 3.0.2 ist ab sofort im Download Bereich verfügbar.