'Async push notification to Microsoft Authenticator App”改为“将异步推送通知到 Microsoft Authenticator 应用程序”,实现方法如下所示:
首先需要安装 Microsoft 的推送通知服务 NuGet 包。在代码中创建一个 PushModel,包含推送内容信息。然后创建一个 PushHub 来执行消息的实际推送,并通过 Microsoft 帐号的用户 ID 检查已注册 Authenticator 应用程序的用户。最后,将推送通知对象序列化为 JSON 字符串并推送到 Microsoft。示例代码如下:
using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.Hubs;
namespace PushNotificationDemo
{
public class PushModel
{
public string UserId { get; set; }
public string Title { get; set; }
public string Message { get; set; }
public string Data { get; set; }
}
[HubName("pushHub")]
public class PushHub : Hub
{
public void PushNotification(PushModel model)
{
var pushService = new PushService();
pushService.Push(model);
}
}
public class PushService
{
public async Task Push(PushModel model)
{
var microsoftUrl = "https://login.microsoftonline.com/common/oauth2/token";
var clientId = "";
var clientSecret = "";
var authenticatorUrl = "https://graph.microsoft.com/v1.0/me/appRoleAssignedTo";
var tokensUrl = "https://graph.microsoft.com/v1.0/me/microsoft.graph.get";
var token = await GetAccessToken(microsoftUrl, clientId, clientSecret);
var authenticatorService = new AuthenticatorService();
var userId = authenticatorService.GetRegisteredUserId(token, authenticatorUrl);
if (string.IsNullOrEmpty(userId))
{
// Throw exception here or handle it as per requirement
}
var pushNotification = new PushNotification();
pushNotification.PushUserId = userId;
pushNotification.Title = model.Title;
pushNotification.Message = model.Message