In einem normalen Controller der folgende Code funktioniert arbeiten:User.Identity.GetUserId() -Methode nicht in einem Web-Api 2 Controller
[HttpPost]
public ActionResult Custom()
{
string name = User.Identity.GetUserName();
string id = User.Identity.GetUserId();
return Content(string.Format("Name:{0} </br> ID: {1}",name, id));
}
In einem Web-Api 2 Controller den Namen und die ID-Strings sind leer:
[HttpPost]
public IHttpActionResult Test()
{
string name = User.Identity.GetUserName();
string id = User.Identity.GetUserId();
return Ok();
}
Kann mir jemand sagen, warum GetUserId()
Arbeiten in einem normalen Controller aber nicht in einer Api? In beiden Fällen bin ich angemeldet und GlobalConfiguration.Configure(WebApiConfig.Register);
wird in Application_Start() in Global.asax.cs hinzugefügt.
Und ich habe ein anderes Problem. Wenn ich meine API-Controller mit [Authorize]
Attribut dekorieren, kann ich nicht einmal auf meine API zugreifen. Der Postbote wird mich auf die Login-Seite lenken, wenn ein i bereits angemeldet bin.
[[Authorize]]
public class TestController : ApiController
{
....
Welche Authentifizierung verwenden Sie für Ihre Web API? – Nkosi
Der Grund, warum der MVC funktioniert, ist, dass Sie wahrscheinlich Authentifizierung verwenden (wie ein Cookie) – Nkosi
Sorry, ich bekomme das nicht, beide Controller der MVC und API sind Teil der gleichen Anwendung, auf Controller-Ordner. Verwenden der individuellen Benutzerkontenauthentifizierung –