2016-06-26 18 views
0

Gebäude Chat-Anwendung mit SignalR bekommen, ich bin neu mit SignalR begann mit Tutorial: Getting Started with SignalR 2 and MVC 5SignalR - Kann nicht Benutzername

Alles passiert in Ordnung, jetzt will ich Anwendung User Name als Absender impliment, wenn ich Methode wie folgt verwendet werden:

$('#displayname').val('@Context.User.Identity.Name'); 

Hub aktuellen Loged Benutzername wird und zeigt es auf Seite, hier ist mein Hub-Code:

[HubName("chatHub")] 
public class ChatHub : Hub 
{ 
    public void Send(string name, string message) 
    { 
     Clients.All.addNewMessageToPage(name, message); 
    } 

} 

Jetzt möchte ich Benutzername impliment mit einer anderen Methode wird diese Methode beschrieben Here

Code unten funktioniert nicht, kann jemand erklären, warum, ich möchte verstehen, wie Methode zu verwenden SingalR. Hier ist Code, der nicht funktioniert:

[HubName("chatHub")] 
public class ChatHub : Hub 
{ 
    public void Send(string name, string message) 
    { 
     name = Context.User.Identity.Name; 
     Clients.All.addNewMessageToPage(name, message); 
    } 

} 

Vielen Dank und sorry für mein Englisch.

Antwort

1

In Ihrer Autostart-Klasse haben Sie Auth konfiguriert?

Mit etwas wie folgt aus:

public void Configuration(IAppBuilder app) 
    { 
     var hubConfiguration = new HubConfiguration { EnableDetailedErrors = true }; 
     ConfigureAuth(app); 
     app.MapSignalR(hubConfiguration); 
    } 

Der folgende Code automatisch generiert wird, wenn Sie ein neues Projekt mit MCV-Authentifizierung erstellen.

public void ConfigureAuth(IAppBuilder app) 
    { 

     // Configure the db context, user manager and signin manager to use a single instance per request 
     app.CreatePerOwinContext(ApplicationDbContext.Create); 
     app.CreatePerOwinContext<AppUserManager>(AppUserManager.Create); 
     app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create); 
     app.CreatePerOwinContext<AppRoleManager>(AppRoleManager.Create); 

     // Enable the application to use a cookie to store information for the signed in user 
     // and to use a cookie to temporarily store information about a user logging in with a third party login provider 
     // Configure the sign in cookie 
     app.UseCookieAuthentication(new CookieAuthenticationOptions 
     { 

      ... 
     } 
} 
Verwandte Themen