如何从OwinStartup文件访问此属性?

时间:2015-03-27 12:20:44

标签: c# asp.net asp.net-web-api asp.net-identity-2

我正在创建一个ASP.NET Identity 2.1 WebAPI服务。它允许注册,登录和授权authtokens。我在this tutorial之后创建的Owin启动类是以下代码:

public class OwinStartup
{
    public void Configuration(IAppBuilder app)
    {
        HttpConfiguration httpConfig = new HttpConfiguration();

        ConfigureOAuthTokenGeneration(app);

        ConfigureWebApi(httpConfig);

        app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

        app.UseWebApi(httpConfig);
    }

    private void ConfigureOAuthTokenGeneration(IAppBuilder app)
    {
        // Configure the db context and user manager to use a single instance per request
        app.CreatePerOwinContext(AppDbContext.Create);
        app.CreatePerOwinContext<AppUserManager>(AppUserManager.Create);

        // Plugin the OAuth bearer JSON Web Token tokens generation and Consumption will be here
    }

    private void ConfigureWebApi(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().First();
        jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
    }
}

现在,在ConfigureOAuthTokenGeneration方法中,创建了DbContext和UserManager。我的问题:如何在WepAPI项目的不同类中访问此dbContext和UserManager?

1 个答案:

答案 0 :(得分:1)

AppDbContext context = HttpContext.Current.GetOwinContext().Get<AppDbContext>();
AppUserManager userManager = HttpContext.Current.GetOwinContext().Get<AppUserManager();

AccountController(在示例项目中)检索这些值的方式相同。

相关问题