2 Stimmen

Wie sende ich den angemeldeten Benutzer in einer Chat-Anwendung mit SignalR?

Ich studiere das folgende Beispiel von SignalR

http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr-and-mvc-4

Ich möchte es implementieren, und der Code ist da, aber ich möchte nicht, dass der Benutzer den Benutzernamen in einem Prompt-Fenster eingeben muss. Ich werde die Seite nur für angemeldete Benutzer verfügbar machen, daher werde ich den context.User haben.

Ich möchte den Prompt-Teil gerne so ändern, dass ich auf der Serverseite den context.User verwenden, aber ich habe keine Ahnung, wie das geht.

Vielen Dank

 $('#displayname').val(prompt('Geben Sie Ihren Namen ein:', ''));

3voto

Basic Punkte 25717

Sie könnten die Informationen beim Seitenaufruf bereitstellen oder sie über AJAX abrufen. Ich würde ersteres vorschlagen.

Je nach Ihrer Ansichts-Engine könnte es so aussehen...

 $('#displayname').val('@(Context.User.Replace("'", "\\'"))'); 

oder besser noch, geben Sie es als Eigenschaft Ihres ViewModel an, sodass es wäre

 $('#displayname').val('@(Model.User.Replace("'", "\\'"))');

1voto

Prateek Saini Punkte 23

Ich habe folgenden Code verwendet. Es leitet Sie jedoch nicht auf eine andere Seite um. Es macht jedoch das Anmeldefenster unsichtbar, wenn der Benutzer sich in die Anwendung einloggt, und zeigt den Chatroom an. Ich hoffe, das hilft.

$(function () {
        setScreen(false);
        var chatHub = $.connection.chatHub;
        registerClientMethods(chatHub);

        $.connection.hub.start().done(function () {
            registerEvents(chatHub)
        });
    });

function setScreen(isLogin) {
            if (!isLogin) {
                $("#divchat").hide();
                $("#divLogin").show();
            }
            else {
                $("#divchat").show();
                $("#divLogin").hide();
            }

        };

1voto

 // Wenn der Benutzer authentifiziert ist, wird der Nick angezeigt, wenn nicht, wird er auf "invitado" + Zufallszahl gesetzt
        if (Request.IsAuthenticated) {
            $('#displayname').val(User.Identity.GetUserName());
        } else {
            $('#displayname').val("invitado" + Math.floor((Math.random() * 100) + 1));
            // $('#displayname').val(prompt('Geben Sie Ihren Namen ein:', '')); (Alias-Fenster... was Sie hatten)
        }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X