在VS 2013的MVC5模板中,有一个Startup类,由OwinStartupAttribute
修饰而被调用。
我是否知道每个IIS或每次Http请求进来时是否运行此Startup类一次?
答案 0 :(得分:0)
OWIN框架使用此属性指定的类来启动应用程序。请参阅本教程中的示例:http://www.asp.net/aspnet/overview/owin-and-katana/owin-startup-class-detection
答案 1 :(得分:0)
使用OwinStartupAttribute
装饰的类每AppDomain
执行一次。
例如,Microsoft.Owin.Security.Cookies.CookieAuthenticationMiddleware
如下所示。在封面下,对于服务器的每个请求,OWIN会多次为CookieAuthenticationHandler
类创建类似图像,脚本,页面等内容。您可以在OnValidateIdentity
内放置一个断点来查看此行为并查看Context.Request.Path
。
简而言之,在你的"创业"每AppDomain
调用一次类,OnValidateIdentity
之类的回调代理每个http请求都会触发一次。
public void ConfigureAuth(IAppBuilder app)
{
// app.UseCookieAuthentication(...) is only called once per AppDomain
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
// callback delegate is called once per http request
OnValidateIdentity = ctx =>
{
return ctx.RejectIdentity(); // Reject every identity. No one can log into my app! It's that secure.
return Task.FromResult<object>(null);
}
}
});
}