问题描述
您好,我有一个Azure数据工厂,该工厂将由用户触发,他们会通过Azure广告隐式流进行身份验证。运行后,ADF会将事件发送到服务总线。现在,我必须基于服务总线触发器编写azure函数应用程序。在应用程序功能中,我想通过信号r向用户发送通知。但是我的问题是,只有谁触发了adf,我才需要发送通知。 UI将触发adf,而adf将事件发送到服务总线,在此流程中,UI将用户信息发送到adf,而adf也将用户信息发送到服务总线事件。但是在azure功能应用中,我只想向触发ADF的用户发送通知。
public void broadcastMessage(string message)
{
Clients.Caller.SendAsync("broadcastMessage",message);
}
当前我在其他应用程序中使用的上面的代码将向Web应用程序发送通知。进入天蓝色功能应用程序时,我如何仅向触发ADF的特定用户发送通知。我已经看到了一些使用Azure应用服务身份验证的示例,但是没有看到关于Azure广告的示例。我的前端目前正在进行azure广告身份验证,并已部署到应用程序服务中,但我没有应用程序服务身份验证。有人可以帮助我吗,或者正确的方法是什么?任何帮助将不胜感激。谢谢
解决方法
negotiate endpoint接受一个UserId
参数,该参数可以传递给以后识别要通知的用户。
虽然该示例正在获取应用程序服务的用户身份,但是如果您使用的是C#,则可以利用runtime binding。对于非C#语言,您可以有一个“内部”协商函数,该函数由“外部”协商函数调用,并传入从JWT令牌中提取的用户身份。
以此,您可以在启动ADF管道并传递此值的函数中提取相同的用户身份,该ADF可以将其包含在稍后发送的服务总线消息中。