Laden...

ASP.NET MVC 5: Aktuellen Benutzer ermitteln

Erstellt von Pico1184 vor 8 Jahren Letzter Beitrag vor 8 Jahren 2.333 Views
Thema geschlossen
Pico1184 Themenstarter:in
223 Beiträge seit 2009
vor 8 Jahren
ASP.NET MVC 5: Aktuellen Benutzer ermitteln

Guten Abend zusammen,

wir haben eine asp.net Mvc 5 webanwendung. Wir nutzen asp.net identity 2.
Nun muss ich einem externen Service eine HttpGet Methode bereitstellen und diesem Informationen zum aktuell angemeldeten User übermitteln. Normalerweise frag ich innerhalb der Anwendung den angemeldeten User über "User.Identity.Name" ab.

Leider bekomme ich in diesem Fall (siehe unten) immer nur einen String.empty zurück. ich denke mal das diese Get Funktion nicht auf dem richtigen Context ist bzw den Context nicht kennt.

Wie kann man das Problem lösen bzw wie komme ich an die Informationen des angemeldeten Benutzers?

Danke für eure Hilfe!


[HttpGet]
    [AllowAnonymous]
    public ActionResult GetAppIdentity()
    {
        if (HttpContext.User.Identity.Name == string.Empty || HttpContext.User.Identity.Name == null)
        {
            return Json(new { success = "false", msg = HttpStatusCode.Unauthorized }, JsonRequestBehavior.AllowGet); ;
        }

        var appUser = UserManager.FindByNameAsync(HttpContext.User.Identity.Name).Result;

        AppAuthentication oa = new AppAuthentication();
        oa.Identity = new AppIdentity();

        oa.Identity.id = appUser.Id.ToString();
        oa.Identity.name = appUser.UserName;
        oa.Identity.role = MemberDataIdentityModel.UserRole.ToString(); ;

        return Json(oa, JsonRequestBehavior.AllowGet);
    }

16.835 Beiträge seit 2008
vor 8 Jahren

Bei AllowAnonymous ohne Authorize gibt keine Identity.

AllowAnonymous macht ohnehin nur sinn, wenn der Controller auch Authorize gesetzt hat.

Pico1184 Themenstarter:in
223 Beiträge seit 2009
vor 8 Jahren

Wir nutzen einen Authorization Filter somit sind alle Controller nur über eingeloggte User verwendbar bzw müssen wir bei den entsprechenden Methoden die Zugänglich sein sollen das AllowAnonymus Attribut setzen.

16.835 Beiträge seit 2008
vor 8 Jahren

Ist das ein AuthorizeAttribute Filter oder was eigenes?

Pico1184 Themenstarter:in
223 Beiträge seit 2009
vor 8 Jahren

Ja genau das ist ein AuthorizeAtrribute Filter:


public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new AuthorizeAttribute());
            filters.Add(new HandleErrorAttribute());
            filters.Add(new RequireSecureConnectionFilter());
        }

Warnung von Abt vor 8 Jahren

Wegen Crosspost geschlossen,
asp.net mvc 5 GetUser from ActiveContext

Thema geschlossen