簡體   English   中英

在WebParts的RenderControl()內部使用WebRequest.Create

[英]Using WebRequest.Create inside RenderControl() for WebParts

我需要調用一個Web服務來接收一個JSON對象,該對象將在呈現內容之前進行解析。 這是相同的代碼:

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

這可以作為獨立的ASP.Net頁面使用。 但是,我需要將此作為Web部件移植到Sharepoint站點。 使用這里描述的方法我已經在RenderControl()方法中給出了上面的代碼。 我收到錯誤消息““ CustomWebPart” Web部件似乎引起問題。請求類型為'System.Net.WebPermission,System,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的權限失敗。”

我嘗試將以下行的變體包含在web.config中,但無濟於事。

<SafeControl Assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.Net" TypeName="WebPermission" Safe="True" AllowRemoteDesigner="True" />

有任何想法嗎?

將Webpart部署到GAC的工作正常。 我之前是手動部署它-將dll復制到bin文件夾

部署到GAC可以進行類似WebRequest.Create()的調用

Sharepoint安全性參考: http : //msdn.microsoft.com/library/default.asp? url=/library/en-us/odc_sp2003_ta/html/sharepoint_wsscodeaccesssecurity.asp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM