Ich habe ein Authentifizierungsmodul in ASP.Net erstellt, aber ich möchte nicht, dass die Logik im Authentifizierungsmodul ausgeführt wird, wenn die Ressource für anonymen Zugriff konfiguriert ist, da die Logik teuer ist.Asp.Net-Authentifizierungsmodul
Es gibt Seiten, die eine Authentifizierung im selben Verzeichnis mit Seiten erfordern, die keine Authentifizierung erfordern. Ich habe keine Kontrolle darüber. Gibt es eine einfache Möglichkeit festzustellen, dass eine Ressource so konfiguriert ist, dass vor dem URLAuthorizationModule ein anonymer Zugriff möglich ist?
Momentan mache ich folgendes, was sich "richtig anfühlt". Jede Hilfe wäre willkommen.
public static bool AllowEveryone()
{
bool rslt = false;
AuthorizationSection config = (AuthorizationSection)WebConfigurationManager.GetSection("system.web/authorization");
if (config.Rules != null && config.Rules.Count > 0)
{
AuthorizationRule r = config.Rules[0]; //doing this based on implementation of urlauthorization module in reflector...
if (r.Action == AuthorizationRuleAction.Allow && r.Users.Contains("*"))
{
return true;
}
//todo: check for allow anon ? case
}
return rslt;
}
Es tut mir leid, ich war nicht klar. Die Seite ist bereits gemäß Ihrer Beschreibung konfiguriert. Ich habe jedoch ein benutzerdefiniertes Authentifizierungsmodul. Ich versuche, die Modullogik zu verlassen, bevor ich die Benutzeridentität kenne, wenn die Seite für Benutzer zulassen = "*" oder Benutzer zulassen = "?" – complexcipher