加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

OWIN如何挂钩ASP.NET启动

发布时间:2020-12-16 03:29:37 所属栏目:asp.Net 来源:网络整理
导读:我一直在浏览和谷歌搜索OWIN之类的东西如何挂钩ASP.NET活动. 我知道如果我们创建一个自托管的OWIN,我们将手动调用它,很明显我们正在调用OWIN使其开始运行. 但是,我发现在ASP.NET启动时自动调用OWIN而无需调用webapp start或其他任何东西. OWIN只是挂钩进入AS
我一直在浏览和谷歌搜索OWIN之类的东西如何挂钩ASP.NET活动.

我知道如果我们创建一个自托管的OWIN,我们将手动调用它,很明显我们正在调用OWIN使其开始运行.

但是,我发现在ASP.NET启动时自动调用OWIN而无需调用webapp start或其他任何东西. OWIN只是挂钩进入ASP.NET并在每个请求上充当拦截器.

我的例子是signalr,我们在OWIN配置方法中调用signalr的映射.但是,我没有看到任何可能调用OWIN配置方法的东西.但是信号器已经映射并且有效.

OWIN如何挂钩ASP.NET活动?是OWIN注册了现在认可OWIN并自动调用的钩子或ASP.NET吗?

解决方法

您将在项目中使用类似的行:

[assembly: OwinStartup(typeof(MyApp.Security.Authentication.Startup))]

上面的行告诉.NET将在开始时调用的类和方法.

您可以选择在WebConfig中配置启动

<appSettings>
...
<add key="owin:appStartup" value="MyApp.Security.Authentication.Startup" />
...
</appSettings>

从那时起,您可以放置??OWIN组件,以及通常放置在Global.asax Application_Start事件处理程序中的所有配置项.

删除Global.asax类:
如果您使用OWIN,则无需使用Gobal.asax类并启动Application_Start事件,因此您可以删除它.

Startup.cs的代码示例

using System.Web.Http;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(MyApp.Security.Authentication.Startup))]
namespace MyApp.Security.Authentication
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            HttpConfiguration config = new HttpConfiguration();
            WebApiConfig.Register(config);
            app.UseWebApi(config);
        }
    }
}

编辑:

OWIN使用启动类,您可以在其中指定要包含在应用程序管道中的组件.如果查看Katana source code,Katana SystemWeb主机使用PreApplicationStartMethodAttribute挂钩进入应用程序启动.
在.NET 4中引入的PreApplicationStartMethodAttribute允许您在应用程序启动时尽早在ASP.NET管道中运行代码.我的意思是早期,甚至在Application_Start之前.

检查link和link中的“Owin Startup类检测”部分,了解PreApplicationStartMethodAttribute.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读