2017-02-19 2 views
0

ich eine Anwendung entwickle, die mehrere Abteilungen in unserer Organisation unterstützen wird, und wollen definieren, welche Daten von AD-Gruppen zugänglich ist ein Benutzer in ist.IsUserInRole() vs Session [] in .Net Web Application

Meine Frage ist, ist es kostengünstiger Ressource weise (Bandbreite, Zeitscheiben, etc.), einen IsUserInRole() Aufruf an jedem Entscheidungspunkt zu verwenden oder mehrere Session[] Variablen bei Benutzeranmeldung laden, die Boolean sind und diese in meinem Code verwenden?

Gedanken?

Antwort

0

Ich würde Sitzungen vermeiden. Sie machen das Skalieren einer Anwendung schwieriger, da Sie einen zentralisierten Speicher (eine Datenbank oder Redis) benötigen, während sie bei jeder einzelnen Anforderung getroffen werden. Dies verlangsamt den Prozess, da Sie warten müssen, bis die Anforderung abgeschlossen ist, bevor Sie mit der eigentlichen Geschäftslogik fortfahren.

Die Antwort dafür ist die Verwendung von JWT-Token. Sie funktionieren sehr gut für kleine Datenmengen (wie eine begrenzte Anzahl von Rollen, nicht Hunderte von ihnen). JWT-Tokens können sicher in einen Cookie eingefügt werden, so dass jede Browseranforderung sie zum Server überträgt.

Weitere Informationen zu JWT-Tokens erhalten Sie hier: https://jwt.io/introduction/. Diese andere StackOverflow-Frage enthält viele Informationen zu JWT-Tokens: Using JWT to implement Authentication on Asp.net web API.

Ich hoffe, es löst Ihre Probleme. Viel Glück.