2016-04-26 1 views
0

J'utilise projet api web avec Entity Framework et je comptais faire Entity Framework comme une dynamique [changer la chaîne de connexion au moment de l'exécution]cadre dynamique Entité sur l'API Web

Dans une application MVC normale je l'ai fait cela comme

public class ApiRepository 
{ 
    public WebApiLabDbEntities dbContext; 
    public ApiRepository() 
    { 
     string connection_string = (string)(System.Web.HttpContext.Current.Session["Connection"]); 
     if (String.IsNullOrEmpty(connection_string)) 
     { 
      dbContext = new WebApiLabDbEntities(); 
     } 
     else 
     { 
      dbContext = new WebApiLabDbEntities(connection_string); 
     } 


    } 

} 

Mais dans un projet WebAPI je ne peux pas définir la chaîne de connexion dans un objet de session comme session [ « connexion »]

Alors, quelle est la voie alternative pour obtenir le même? Le api web va utiliser l'authentification par jeton et la auth_token décide la chaîne de connexion à utiliser.

+0

Cela ressemble à ce que vous voulez est d'utiliser Session dans WebAPI. C'est possible. Prenez cela comme exemple http://stackoverflow.com/questions/9594229/accessing-session-using-asp-net-web-api – smoksnes

+0

je comptais lire access_token et sur cette base et construire connection_string garder dans un endroit comme soit session ou ajouter à demander [ne sais pas qui est possible ou non] et l'accès puis de session soit ou de l'objet de demande –

Répondre

0

Si votre chaîne de connexion dépend de l'utilisateur authentifié, vous devez appliquer votre logique en fonction des revendications d'utilisateur en cours (par exemple en utilisant Thread.CurrentPrincipal as ClaimsPrincipal et en lisant les revendications émises).

Bien sûr, cela signifie que vous devez émettre une réclamation qui fera de votre identité au courant des différentes chaînes de connexion.

Ceci est une rubrique du conseil d'administration et dépend fortement de ce type d'authentification, d'autorisation et d'un cadre d'identité que vous utilisez dans les coulisses, mais ce poste pourrait vous conduire vers la bonne direction: ASP.NET Web API Claims Authorization with ASP.NET Identity 2.1 – Part 5