Context.User.Identity.Name ist null mit SignalR 2.X.X. Wie man es repariert?
Das treibt mich in den Wahnsinn.
Ich bin mit der neuesten signalR-release (2.0.2). Dies ist mein hub-code (OnConnected)
public override Task OnConnected()
{
//User is null then Identity and Name too.
Connections.Add(Context.User.Identity.Name, Context.ConnectionId);
return base.OnConnected();
}
Und dies ist mein Controller-s login-Methode:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (ModelState.IsValid)
{
var user = await UnitOfWork.UserRepository.FindAsync(model.UserName, model.Password);
if (user != null)
{
await SignInAsync(user, model.RememberMe);
return RedirectToLocal(returnUrl);
}
}
TempData["ErrorMessage"] = Resources.InvalidUserNameOrPassword;
//If we got this far, something failed, redisplay form
return RedirectToAction("Index","Home");
}
Fand ich, dass einige Leute haben dieses Problem auf OnDisconnected, die ich nicht selbst machen, es gibt.
Ich bin mit MCV5 Vorlage.
Haben Sie eine Idee, was falsch ist?
InformationsquelleAutor der Frage MRFerocius | 2014-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich die endgültige Lösung, das ist der code von meinem OWIN startup class:
Mache mir einen Kaffee, dachte ich ", Was über die Zuordnung SignalR NACH der Authentifizierung, und voila! Jetzt ist es workign als erwartet.
InformationsquelleAutor der Antwort MRFerocius
Wenn Sie mit Web Api und SignalR im selben Projekt, haben Sie, um anzeigen SignalR vor Registrierung Web-Api.
Ändern:
:
InformationsquelleAutor der Antwort Josh Noe
nur stellen Sie sicher auth. Konfiguration wird als vor dem start der app.MapMignalrR()
änderte ich diese
zu diesem
Umarmungen ..
InformationsquelleAutor der Antwort islam khateeb
Wenn Sie eine Zuordnung
/signalr
als eine 'verzweigte pipeline' Sie müssen es so machen. Stellen Sie sicher, dass Siemap.UseCookieAuthentication
und nichtapp
:Tipp: ich vorübergehend verändert das Gehäuse des Pfads so, wenn ich sehe
youRaccount
in der URL-Leiste, ich weiß, es hatte funktioniert 🙂InformationsquelleAutor der Antwort Simon_Weaver