繁体   English   中英

在asp.net web Z8A5DA52ED126447D359E70C057项目中手动创建startup.cs class添加配置

[英]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方法,但没有ConfigureServiceConfigure 我对如何在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM