c# - 向asp.net web api项目中手动创建的startup.cs类添加配置
问题描述
我是 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
. 这个类有一个Configuration
方法,但没有ConfigureService
or Configure
。我对如何在startup.cs
. 有人可以帮助我如何在 startup.cs 类中添加这些配置吗?
解决方案
您需要在项目的根目录中添加 Startup 类,并用 OwinStartup 属性对其进行标记,以指示要用于自动设置的类。
然后,您需要实现配置方法,您可以在其中设置身份验证、COR、Signalr 等内容。
您还可以通过 Visual Studio 中的添加项添加 Owin 启动类。它将为您添加基本设置到配置。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);
}
}
}
推荐阅读
- c++ - 检测指针目标:静态内存还是动态内存?
- c - 如何使用 strtol 从用户输入中提取数字
- python - 在 Python 中解析日期时混淆日期和月份
- python-3.x - 我不知道如何编写一个猜词程序的一部分
- sabre - SABRE RedWeb 安装/入门
- spring - @Transactional 注解不回滚
- mysql - 创建具有主键和不同列值的视图会产生奇怪的结果
- typescript - vue-class-component + typescript:如何在导入的函数中使用组件的类作为“this”的类型?
- python - Discord py - 我怎样才能停止我的调度程序两次执行任务?
- excel - Excel VBA 代码适用于 Windows 10,但不适用于运行 macOS Catalina 10.15.7 和 Excel for Mac 版本 16.43 的 MacBook Pro