在ASP.NET Core SignalR应用程序中启用跨域资源共享(CORS)并配置策略,以允许来自其他源的信号之间的通信。
以下示例代码可以添加到Startup.cs文件的ConfigureServices方法中,以启用CORS和配置策略:
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder
.AllowAnyMethod()
.AllowAnyHeader()
.WithOrigins("http://localhost:4200") // replace with your client app URL
.AllowCredentials());
});
services.AddSignalR();
然后,使用以下示例代码,将这个策略应用于SignalR端点:
app.UseRouting();
app.UseCors("CorsPolicy");
app.UseEndpoints(endpoints =>
{
endpoints.MapHub("/yourhub");
});
这将应用名为CorsPolicy的CORS策略,并允许任何来源的请求。特定来源可以通过将WithOrigins方法调用更改为允许的URL来指定。请注意,如果客户端和服务器部署在不同的域中,则必须配置正确的CORS策略,以便从不同的域中正常工作。