如何在 Web ASP.NET (.NET Framework) 中创建启动文件?

Posted

技术标签:

【中文标题】如何在 Web ASP.NET (.NET Framework) 中创建启动文件?【英文标题】:How to create Startup file in Web ASP.NET (.NET Framework)? 【发布时间】:2020-04-24 18:48:16 【问题描述】:

我有一个在 VB.NET 中构建为 ASP.NET (.NET Framework) 的网站,所以它不是 CORE 应用程序。

该网站在 WebApi 2 中构建了很多 API,现在我打算通过 JWT 创建一个身份验证 API,实际上我还有一个返回 JWT 令牌的控制器,但现在我必须验证它...

正如我在网上看到的,我必须验证它是否会抛出像 OWIN 这样的中间件,所以我需要在 Startup 类中添加以下方法

Public Class Startup
    Public Sub Configuration(ByVal app As IAppBuilder)
        app.UseJwtBearerAuthentication(New JwtBearerAuthenticationOptions With 
            .AuthenticationMode = AuthenticationMode.Active,
            .TokenValidationParameters = New TokenValidationParameters() With 
                .ValidateIssuer = True,
                .ValidateAudience = True,
                .ValidateIssuerSigningKey = True,
                .ValidIssuer = "url",
                .ValidAudience = "url",
                .IssuerSigningKey = New SymmetricSecurityKey(Encoding.UTF8.GetBytes("my_secret_key_12345"))
            
        )
    End Sub
End Class

但问题是通过右键单击项目并通过 > 添加新元素 Startup 类不存在...

那么我怎样才能创建一个呢?正如我所读到的,该项目必须是 .NET Core 才能使用 Owin Startup 类。所以我应该在 Core 中重建我的所有项目,还是无论如何我都可以找到一种方法来验证 JWT 令牌而不需要它?

【问题讨论】:

这应该是您进一步研究的开始:***.com/questions/49407749/… 在 ASP.NET 中,您可以添加 global.asax 文件并处理 Application_Start 方法。我不确定这是否有帮助。 【参考方案1】:

您可以使用以下属性将 Owin 启动类添加到 .NET Framework 项目中

[assembly: OwinStartup(typeof(myNamespace.Startup))]

namespace myNamespace

    /// <summary>
    /// OWIN startup class, automatically starts when app starts
    /// </summary>
    public partial class Startup
    
        public void Configuration(IAppBuilder app)

这应该在 vb .net 中使用这个语法来工作

<Assembly: OwinStartup(GetType(myNamespace.Startup))]

只需在您的项目中添加一个名为 Startup 的常规类,这应该可以工作。

【讨论】:

以上是关于如何在 Web ASP.NET (.NET Framework) 中创建启动文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在asp.net c# web应用程序中使用asp.net vb页面

如何在 Web ASP.NET (.NET Framework) 中创建启动文件?

如何使用 ASP.NET 在 web.config 文件中写入 appSetting?

如何在 ASP.NET Web API 中为 Json.NET 设置自定义 JsonSerializerSettings?

如何从 ASP.NET 核心 mvc 向 asp.net 核心中的 Web API 发出 PUT 请求?

如何在使用 HttpClient 使用 Asp Net Web Api 的 Asp Net Mvc 中提供实时数据?