Tag: asp.net web api2 owin

OWIN初创公司的剖析

OWIN Startup类的所有钩子是什么? 关于这些的信息很少。 例如,每个Startup类上的一个必需挂钩是它应该具有Configuration方法。 可以从Microsoft文档中收集此信息。 class Startup { public void Configuration(IAppBuilder appBuilder) { … } } 在框架中没有 IOwinStartup接口或OwinStartup基类背后的基本原理是什么? interface IOwinStartup { void Configuration(IAppBuilder appBuilder); } 如何为基于OWIN的应用程序执行清理? OWIN是否在Startup类上检测到Dispose方法,类似于它检测Configuration方法的方法? 经过大量搜索后,我发现了这个相关的问题: 在自托管的OWIN Web API中,如何在关机时运行代码? 目前尚不清楚回答这个问题的人是如何得出必要信息的。 我错过了关键文档,还是OWIN Startup类的这些细节看起来难以捉摸?

如何在生产中部署Owin自托管应用程序?

我有一个Asp.Net Owin Self Hosted WebApi应用程序。 该应用程序可以作为Windows服务安装在生产环境中。 目前我正在运行并通过url http:// localhost:8000成功访问该服务。 现在我想将服务映射到域以从公共网络访问它。 我有一个注册域名并可以控制它。 例如:www.myservice.com 如何将域指向自助托管应用程序的WebApi服务?

为Web Api 2和OWIN令牌身份validation启用CORS

我有一个ASP.NET MVC 5 webproject(localhost:81),它使用Knockoutjs从我的WebApi 2项目(localhost:82)调用函数,以便在我启用CORS的两个项目之间进行通信。 到目前为止,一切都有效,直到我尝试对WebApi实现OWIN令牌认证。 要在WebApi上使用/ token端点,我还需要在端点上启用CORS,但经过几个小时的尝试和搜索解决方案后,它仍在运行,并且api / token仍然会导致: XMLHttpRequest cannot load http://localhost:82/token. No ‘Access-Control-Allow-Origin’ header is present on the requested resource. public void Configuration(IAppBuilder app) { app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); TokenConfig.ConfigureOAuth(app); … } TokenConfig public static void ConfigureOAuth(IAppBuilder app) { app.CreatePerOwinContext(ApplicationDbContext.Create); app.CreatePerOwinContext(AppUserManager.Create); OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions() { AllowInsecureHttp = true, TokenEndpointPath = new PathString(“/token”), AccessTokenExpireTimeSpan […]

在Web API和OWIN中使用Simple Injector

我遇到了与此处描述的相同的问题,我的设置几乎与此实际上基于本指南相同 。 当我在我的控制器中访问一个方法时,我得到了这个 尝试创建“TestController”类型的控制器时发生错误。 确保控制器具有无参数的公共构造函数。 这是堆栈跟踪 at System.Web.Http.Dispatcher.DefaultHttpControllerActivator .Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)\r\n at System.Web.Http.Controllers.HttpControllerDescriptor .CreateController(HttpRequestMessage request)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext() 这是内部exception的堆栈跟踪 at System.Linq.Expressions.Expression.New(Type type)\r\n at System.Web.Http.Internal.TypeActivator.Create[TBase](Type instanceType)\r\n at System.Web.Http.Dispatcher.DefaultHttpControllerActivator .GetInstanceOrActivator(HttpRequestMessage request, Type controllerType, Func`1& activator)\r\n at System.Web.Http.Dispatcher.DefaultHttpControllerActivator .Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType) 这是我的控制器的样子 public class TestController : ApiController { private readonly ITestRepo _repo; public […]

如何将Owin上下文传递给注入Api控制器的Repo

我有一个MVC WebApi owin(软托管)项目,它使用Unity来解析控制器依赖项 看起来像这样 public class PacientaiController : ODataController { private readonly IEntityRepo repo; public PacientaiController(IEntityRepo repo) { this.repo = repo; } 我试图解决的问题是 – 如何将’OwinContex’传递给回购。 public class PacientasEntityRepo:IEntityRepo,IDisposable { public PacientasEntityRepo(IOwinContext ctx) { ……… 如果我尝试在Startup.cs注册它 Container.RegisterType(new InjectionFactory(o => HttpContext.Current.GetOwinContext())); 我得到一个空引用,说HttpContext.Current是NULL 这里的主要思想是将当前经过身份validation的用户传递给repo,因为Repo托管逻辑以查询数据库,具体取决于用户。 (如果用户是Admin,则返回此数据,如果用户是guest – 返回此数据) 关键是 – 这是一个自我主持人!