2009-07-17 8 views
0

Dans le livre blanc, il est dit que nous pouvons utiliser REST pour demander le jeton puis utiliser le jeton pour attacher à la demande que nous allons tirer, puis invoquer le service dans le bus de service , mais je ne peux pas obtenir le jetonne peut pas être émisetoken en utilisant REST

Ci-dessous sont les codes que j'utilise pour faire appel REST, je peux obtenir le résultat, mais qui était une page d'erreur html .. je n'ai pas eu de jeton ... et je suis sûr que mon nom de solution et mon mot de passe sont corrects. coz mon service dans le nuage sont service RESTful, quand je mets le point de terminaison de service sur le broswer, il me demande d'entrer mon nom de solution et mot de passe, je saisis le même que dans le code ci-dessous, et ça marche très bien. Quelqu'un peut-il me dire pourquoi le code ci-dessous, je ne peux pas obtenir ce que le blanc a dit?

public static String call() { 
    try { 
     HttpClient client = new HttpClient(); 
     String uri = String.format("https://accesscontrol.windows.net/isssuetoken.aspx?u=%s&p=%s", "solutionname", "password"); 
     log.debug("Out going uri is : " + uri); 
     GetMethod get = new GetMethod(uri); 
     int status = client.executeMethod(get); 
     byte[] responseBody = get.getResponseBody(); 
     log.debug("status return is : " + status); 
     if (status == HttpStatus.SC_OK) { 
      return new String(responseBody); 
     } 
    } catch (Exception ex) { 
     log.error("Error while calling AccessControl protal.", ex); 
    }   
    return null; 
} 

================ Voici les mots de papier blanc =============

https://accesscontrol.windows.net/isssuetoken.aspx?u= {solution -name} & p = {password}

La réponse contient un cookie de référence (au format texte brut) à un jeton contenu dans le service de contrôle d'accès .NET. Le client peut utiliser le cookie pour accéder au service de relais en ajoutant la valeur de cookie aux demandes HTTP sortantes dans un en-tête HTTP personnalisé nommé "X-MS-Identity-Token". Lorsque vous utilisez cette technique, Microsoft recommande fortement d'utiliser HTTPS pour protéger la valeur du cookie sur le réseau. Pour plus d'informations sur le service de contrôle d'accès .NET et pour savoir comment vous pouvez l'utiliser conjointement avec vos propres services (pas uniquement via le bus de service .NET), consultez le livre blanc d'accompagnement intitulé Guide du développeur .NET Service de contrôle d'accès.

Répondre

0
String uri = String.format("https://accesscontrol.windows.net/isssuetoken.aspx?u=%s&p=%s", "solutionname", "password"); 

analogues au-dessus est faux ... le livre blanc obtenir un misstake,

il y a un 's' supplémentaire dans le lien, il devrait être chaîne uri = String.format ("https://accesscontrol.windows.net/issuetoken.aspx?u=%s&p=%s", "nom de la solution", "mot de passe");

0

FYI, ce n'est pas du tout REST. C'est simplement RPC.

Questions connexes