簡體   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