Seiten haben Rollen. Benutzer haben Rollen. Ein Benutzer kann nur dann eine Seite anzeigen, wenn er und er eine oder mehrere Rollen teilen.Wie kann ich leicht feststellen, ob zwei Auflistungen von .NET-EntityObjects dieselben Objekte enthalten?
Dies funktioniert:
Dim Allow As Boolean = False
CurrentPage.Roles.Load()
For Each r As Role In CurrentPage.Roles
r.Users.Load()
For Each u As User In r.Users
If u.Id = CurrentUser.Id Then
Allow = True
Exit For
End If
Next
If Allow Then
Exit For
End If
Next
Ich will nicht verschachtelte Schleifen verwenden, um, wenn ich anstatt es in weniger Codezeilen mit LINQ oder Lambda-Ausdruck tun.
Diese gibt immer False:
Dim Allow As Boolean = (CurrentPage.Roles.ToList.Intersect(CurrentUser.Roles.ToList).Count > 0)
Ich denke, es schlägt fehl, weil Rollen EntityObjects sind.
Wie kann ich dafür sorgen, dass nur die Rollen-ID-Werte verglichen werden, um die Gleichheit zu bestimmen?