Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[gelöst] MVC4: AllowAnonymous greift nicht!
Coooder
myCSharp.de - Member



Dabei seit:
Beiträge: 186

Themenstarter:

[gelöst] MVC4: AllowAnonymous greift nicht!

beantworten | zitieren | melden

Hallo,
ich habe in der Web.config eine FormsAuthentication deklariert
und zwar so:
<authentication mode="Forms">
      <forms loginUrl="~/Home/Index" timeout="30" slidingExpiration="true" />
    </authentication>
    <authorization>
      <deny users="?"/>
    </authorization>

damit man sich aber einloggen kann habe ich den HomeController mit

[Authorize]
belegt und die Index Action sowie die Login Action mit

[AllowAnonymous]

[AllowAnonymous]
        public ActionResult Index()
        {
            return View();
        }

 [HttpPost]
        [AllowAnonymous]
        public ActionResult Login(FormCollection fc)
        {
            [...]
            return RedirectToAction("Index");
        }
da man sich momentan auf der IndexSeite nur einloggen kann ist das auch vorrübergehen die loginUrl...

problem is jetzt nur das

[AllowAnonymous]
scheinbar ignoriert wird und er immer sofort zur LoginUrl springt mit dem ?ReturnUrl parameter in der url ...

was mach ich falsch?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15806
Herkunft: BW

beantworten | zitieren | melden

Dass er nicht greif ist unwahrscheinlich. Wahrscheinlich hast Du einen anderen Fehler, den Du selbst herausfinden kannst ([Artikel] Debugger: Wie verwende ich den von Visual Studio?).

Insgesamt ist Dein Vorgehen aber doch fraglich und alles andre als gut.

Statt auf FormsAuthentication zu setzen würde ich den Cookie selbst schreiben (denk an die Encryption) und auch ein eigenes AuthorizeAttribute erstellen.
Dann kann man auch so sicherheitsrelevante Dinge wie IP-Bindung, Expiration, Single-Session etc umsetzen.
private Nachricht | Beiträge des Benutzers
Coooder
myCSharp.de - Member



Dabei seit:
Beiträge: 186

Themenstarter:

beantworten | zitieren | melden

Zitat von Abt
Insgesamt ist Dein Vorgehen aber doch fraglich und alles andre als gut.

- ich find das jetzt nich so unüblich wenn man sich über die startseite auch einloggen kann
- das mit den submitmodels klingt interessant ... ich habs mit mal durchgelsesn, wenn das haupt problem behoben is werd ich das mal so versuchen.


ich hab jetzt mal (zum ausprobieren) ein neues projekt erstellt(mvc4 internetanwendung)
ich dachte mir da müsste es ja klappen, dem war aber leider nich so ... ich habe lediglich
<authorization>
      <deny users="?"/>
    </authorization>
in die web.config eingefügt und

 [Authorize]
    public class HomeController : Controller
    {
        [AllowAnonymous]
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

            return View();
        }

und die beiden attribute gesetzt ... die breakpoints sagen mir jetzt auch nur das er sofort in die LoginMethode springt ... aber das wusst ich ja nun auch so


edit: ich habe gerade festgestellt das ich auch nich zum Register komme obwohl da standart mäßig schon [AllowAnonymous] gesetzt is
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Coooder am .
private Nachricht | Beiträge des Benutzers
Coooder
myCSharp.de - Member



Dabei seit:
Beiträge: 186

Themenstarter:

beantworten | zitieren | melden

ok hab herrausgefunden ...
das prob war
<authorization>
      <deny users="?"/>
    </authorization>

das einfach weg nehmen und es funzt so wie es soll ... ich meine gestern gelesen zu habe das [AllowAnonymous] den deny dann übergeht ... war wohl ne fehlinformation
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15806
Herkunft: BW

beantworten | zitieren | melden

Repräsentiert die Startseite NUR die Loginform (und NICHTS anderes), oder ist das eine ganz normale Seite, wo eben oben Rechts 2 Loginfelder sind?
Egal: in beiden Fällen stellen diese Kriterien nicht die Home-Seite einer RIA dar.

In Fall 1 würde man den Inhalt aus einer Login.cshtml holen und diesen Anzeigen (wenn der User eingeloggt ist, und Home wählt - wohin wird er geleitet? Nicht sehr intuitiv!).
Ich löse das über eine eigene Url, sodass der User seine Login-Url a) als Favourite intuitiver speichern kann und b) auch via Copy / Paste nutzen kann und weis, wohin er kommt.

In Fall 2 würde man den Form-Submit auf eine andere URL leiten und mit Gewissheit kein Post des Home anbieten.
Das wäre im Übrigen laut UI-Best-Practise kein Ersatz für ein Login-Fenster, sondern nur eine Erleichterung.
private Nachricht | Beiträge des Benutzers
Coooder
myCSharp.de - Member



Dabei seit:
Beiträge: 186

Themenstarter:

beantworten | zitieren | melden

Du hast natürlich recht, das is noch sehr unschön ... aber das weiss ich ja ;D
der ganze mist komm auch aus dem HomeController wieder raus ...
Doch bevor ich mich um die richtige struktur kümmere wollt ich erstma ein paar grundlegende sachen testen und dabei ist es ja nich wichtig ...

ich hab das projekt ja auch erst kürzlich angefangen und es is noch so gut wie leer ^^
aber ich danke dir für die infos, vor allem das mit der FormCollection werde ich ausbauen und mit models arbeiten
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15806
Herkunft: BW

beantworten | zitieren | melden

Merk Dir eins: provisorische Lösungen sind die Umsetzungen, die man nie verändert.
Deswegen: mach Dir Gedanken, wie die Seite funktionieren soll und dann erstell Dir eine Struktur.

Wenn Du so anfängst wirst Du das nie sauber umsetzen, glaub mir.
private Nachricht | Beiträge des Benutzers
Coooder
myCSharp.de - Member



Dabei seit:
Beiträge: 186

Themenstarter:

beantworten | zitieren | melden

ja da hast du wahrscheinlich nich ganz unrecht ... ich werds mir zu Herzen nehmen, danke
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Coooder am .
private Nachricht | Beiträge des Benutzers