Je dois appeler un service Web pour recevoir un objet JSON que je vais analyser avant de rendre le contenu. Voici le code pour le même:Utilisation de WebRequest.Create dans RenderControl() pour WebParts
Dim jResponse As MessageResponseWrapper = New MessageResponseWrapper() 'Custom class to deserialize JSON
Dim req As System.Net.HttpWebRequest
req = System.Net.WebRequest.Create("http://some-cross-domain?q=" & SearchKeyword & "&restapi.response_style=view&xslt=json.xsl")
req.Method = WebRequestMethods.Http.Get
Dim res As HttpWebResponse = req.GetResponse()
Dim reader As New StreamReader(res.GetResponseStream())
Dim json As String = reader.ReadToEnd()
Dim ser As New DataContractJsonSerializer(GetType(MessageResponseWrapper))
Using ms As New MemoryStream(Encoding.Unicode.GetBytes(json))
jResponse = TryCast(ser.ReadObject(ms), MessageResponseWrapper)
End Using
Cela fonctionne comme une page ASP.Net autonome. Cependant, j'ai besoin de cela comme un composant WebPart pour le port vers un site Sharepoint. En utilisant la méthode décrite here J'ai donné le code ci-dessus dans la méthode RenderControl(). Je reçois l'erreur "Le composant WebPart" CustomWebPart "semble être à l'origine d'un problème.La demande de l'autorisation de type" System.Net.WebPermission, System, Version = 2.0.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089 "a échoué."
J'ai essayé d'inclure des variantes de la ligne suivante dans web.config sans succès.
<SafeControl Assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.Net" TypeName="WebPermission" Safe="True" AllowRemoteDesigner="True" />
Des idées?
Avez-vous déployer et activer le web part sur votre installation de sharepoint? –
Je reçois l'erreur dès que j'attribue le composant WebPart à une page. Oui, il est rempli dans la galerie Webpart –
Je pense que je reçois cela parce que c'est un appel interdomaines. Des façons de contourner cela? –