[英]Adding configurations to manually created startup.cs class in asp.net web api project
我是 asp.net 的新手,并从 Visual Studio 中的 web API 项目开始。 我想将这些 web API 用于 angular 应用程序。 为此,我必须启用 CORS 并配置 SignalR
In the ConfigureServices method, we are adding SignalR to the IService collection. And in a Configure
method, we are adding SignalR to the request pipeline by pointing to our ChartHub with the provided /chart path.
参考 - “https://code-maze.com/netcore-signalr-angular/”。
我的 web API 项目中没有Startup.cs
文件,所以我添加了一个OWIN startup class
。 这个 class 有一个Configuration
方法,但没有ConfigureService
或Configure
。 我对如何在startup.cs
中添加启用 CORS 和 SignalR 感到困惑。 有人可以帮助我如何在 startup.cs class 中添加这些配置吗?
您需要在项目的根目录中添加 Startup class 并用 OwinStartup 属性标记它以指示 class 用于自动设置。
然后您需要实现配置方法,您可以在其中设置身份验证、CORs、Signalr 等。
您还可以通过 Visual Studio 中的 Add Item 添加 Owin Startup Class。 它将为您添加基本设置到配置。 https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/owin-startup-class-detection#create-an-aspnet-web-app-using-owin-startup
[assembly: OwinStartup(typeof(Example.Web.Startup))]
namespace Example.Web
{
public class Startup
{
private static CorsOptions _corsOptions = new CorsOptions
{
PolicyProvider = new CorsPolicyProvider
{
PolicyResolver = context =>
{
var policy = new CorsPolicy();
foreach (string domain in ConfigHelper.AllowedCorsDomains.Split(','))
{
policy.Origins.Add(domain);
}
policy.AllowAnyMethod = true;
policy.AllowAnyHeader = true;
policy.SupportsCredentials = true;
return Task.FromResult(policy);
}
}
};
public void Configuration(IAppBuilder app)
{
app.UseCors(_corsOptions);
app.MapSignalR();
AccessTokenFormat = new SecureDataFormat<AuthenticationTicket>(new TicketSerializer(), app.GetDataProtectionProvider().Create("ASP.Net Identity"), new Base64TextEncoder());
OAuthBearerAuthenticationOptions = new OAuthBearerAuthenticationOptions()
{
AccessTokenFormat = AccessTokenFormat
};
if (provider != null)
{
OAuthBearerAuthenticationOptions.Provider = provider;
}
app.UseOAuthBearerAuthentication(OAuthBearerAuthenticationOptions);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.