ASP.. NET代码访问安全- System.Net.SocketPermission



我正在ASP.net 4.0中工作,这个程序旨在读取pop3.mail.com服务器上的电子邮件。

错误代码:

请求类型System.Net的权限。SocketPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.日志含义

其他电子邮件程序,如Pop3Client和OpenPop.dll不能与ASP.net 4.0一起工作。

这个程序可以在4.0中工作,因为没有附加的外部dll程序。

代码:

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Try
        Dim tcpclient As New TcpClient()
        tcpclient.Connect("pop3.mail.com", 995)
        Dim sslstream As System.Net.Security.SslStream = New SslStream(tcpclient.GetStream())
        sslstream.AuthenticateAsClient("pop3.mail.com")
        Dim sw As System.IO.StreamWriter = New StreamWriter(sslstream)
        Dim reader As System.IO.StreamReader = New StreamReader(sslstream)
        sw.WriteLine("USER email@mail.com")
        sw.Flush()
        sw.WriteLine("PASS pass1")
        sw.Flush()
        sw.WriteLine("RETR 1")
        sw.Flush()
        sw.WriteLine("Quit ")
        sw.Flush()
        Dim str As String = String.Empty
        Dim strTemp As String = String.Empty
        While ((strTemp = reader.ReadLine()) <> "")
            If strTemp = "." Then
                Exit While
            End If
            If strTemp.IndexOf("-ERR") <> -1 Then
                Exit While
            End If
            str = str & " " & strTemp
        End While
        TextBox1.Text = str
    Catch ex As Exception
        Response.Write(ex.Message)
    End Try
End Sub

请求类型System.Net的权限。SocketPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

我将假设这与ASP中的用法有关。净上下文。如果是这样的话,

  • 如果这是在共享的托管环境中,那么很可能(检查)您的托管提供商将有ASP。网络信任级别设置为medium trust

  • 在本地机器上执行dev时,您正在full trust中执行dev。如果你设置ASP。. Net本地到medium trust,你应该能够在你的本地开发环境中重现错误来确认。

这个差别很重要。参考这个MSDN文档-表格将会有所帮助。您将看到Medium Trust中的System.Net.SocketPermission具有No权限

Hth…

相关内容

  • 没有找到相关文章

最新更新