AutomaticLogoutOnCloseTab/Browser-BlazorServerSide
创始人
2024-09-23 18:30:23
0

Blazor Server Side应用程序使用SignalR与服务器进行通信,因此可以使用SignalR的相关事件来实现用户在关闭选项卡或浏览器时自动注销。

  1. 在Startup.cs文件中添加以下代码来配置SignalR:
 services.AddSignalR();
  1. 在App.razor文件中添加以下代码来注册SignalR的事件:
@inject NavigationManager NavigationManager
@inject IJSRuntime JSRuntime

@implements IDisposable

private HubConnection hubConnection;
private string connectionErrorMessage;

protected async override Task OnInitializedAsync()
{
    hubConnection = new HubConnectionBuilder()
        .WithUrl(NavigationManager.ToAbsoluteUri("/myHub"))
        .Build();

    hubConnection.On("Logout", (message) =>
    {
        JSRuntime.InvokeVoidAsync("alert", message);
        NavigationManager.NavigateTo("/");
    });

    try
    {
        await hubConnection.StartAsync();
    }
    catch (Exception ex)
    {
        connectionErrorMessage = ex.Message;
    }
}

public async ValueTask DisposeAsync()
{
    if (hubConnection != null)
    {
        await hubConnection.DisposeAsync();
    }
}
  1. 在Server项目中创建一个Hub类,并添加以下代码:
public class MyHub : Hub
{
    public async Task LogoutAsync(string message)
    {
        await Clients.All.SendAsync("Logout", message);
    }

    public override async Task OnDisconnectedAsync(Exception exception)
    {
        await LogoutAsync("用户已注销");
        await base.OnDisconnectedAsync(exception);
    }
}
  1. 修改Logout页面的代码,添加以下代码:
@inject NavigationManager NavigationManager
@inject HubConnection hubConnection

@page "/logout"

@if (hubConnection.State == HubConnectionState.Disconnected)
{
    
@("SignalR连接错误:" + hubConnection.GetConnectionErrorMessage())
} else {
正在注销...
} @code { protected override async Task OnInitializedAsync() { await hubConnection.SendAsync("LogoutAsync", "用户已注销"); NavigationManager.NavigateTo("/", force

相关内容

热门资讯

实测发现!微乐自建房辅助工具脚... 实测发现!微乐自建房辅助工具脚本,微乐家乡麻将自建房辅助app(开挂自建房)教程1、微乐家乡麻将自建...
科技介绍!微信微乐自建房辅助工... 科技介绍!微信微乐自建房辅助工具,微乐自建房脚本免费入口(开挂自建房)插件1、许多玩家不知道微信微乐...
玩家必看科普!微乐微信自建房辅... 玩家必看科普!微乐微信自建房辅助工具插件,微乐自建房脚本免费入口(开挂自建房)脚本1、金币登录送、破...
最新技巧!微乐家乡麻将自建房辅... 最新技巧!微乐家乡麻将自建房辅助app,微乐小程序免费黑科技(开挂自建房)脚本暗藏猫腻,小编详细说明...
分享开挂内幕!微乐自建房辅助工... 分享开挂内幕!微乐自建房辅助工具免费app,微乐小程序免费黑科技(开挂自建房)技巧一、微乐自建房辅助...
最新技巧!微乐自建房辅助工具免... 最新技巧!微乐自建房辅助工具免费app,微乐小程序免费黑科技(开挂自建房)攻略1、上手简单,内置详细...
每日必备!微乐自建房辅助工具脚... 每日必备!微乐自建房辅助工具脚本,微乐小程序免费黑科技(开挂自建房)器1、微乐自建房辅助工具脚本辅助...
专业讨论!微信微乐自建房辅助工... 专业讨论!微信微乐自建房辅助工具,微乐自建房脚本免费入口(开挂自建房)教程1、金币登录送、破产送、升...
教程辅助!微乐自建房辅助工具神... 教程辅助!微乐自建房辅助工具神器,微乐家乡麻将自建房辅助app(开挂自建房)插件暗藏猫腻,小编详细说...
一分钟揭秘!微乐微信自建房辅助... 一分钟揭秘!微乐微信自建房辅助工具插件,微乐自建房脚本免费入口(开挂自建房)方法1、用户打开应用后不...