【发布时间】:2014-10-30 15:55:09
【问题描述】:
参考SignalR Hubs API Guide
在配置cmets中表示如下信息:
// Setup the CORS middleware to run before SignalR.
// By default this will allow all origins. You can
// configure the set of origins and/or http verbs by
// providing a cors options with a different policy.
map.UseCors(CorsOptions.AllowAll);
但是,System.Web.CorsPolicy 的 Origins 属性有一个私有设置器,没有允许注入源的构造函数,也没有公开的设置器方法。关于 Origins 列表,它似乎只公开了一个“AllowAllOrigins”属性,然后是一个无用的 Origins getter,它只反映了在 CorsPolicy 构建期间构造的空 List。
特别注意,默认 app.UseCors(CorsOptions.AllowAll) 设置完全不连贯。根据它自己的工具提示,它是“允许所有标头、所有方法、任何来源并支持凭据的策略。”
A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true
我的配置目前是“愚蠢简单”的 SignalR 配置
public void Configuration(IAppBuilder app)
{
app.UseCors(CorsOptions.AllowAll);
app.MapSignalR();
}
任何人都可以提供一个 Microsoft.Owin.Cors.CorsMiddleware 示例,以使用 Access-Control-Allow-Origin 的显式白名单重新实现“AllowAll”选项吗?
【问题讨论】: