请求“System.Net.WebPermission”类型的权限,失败

时间:2012-08-21 12:39:59

标签: vb.net-2010 system.net.webexception

编辑固定!:我觉得很傻;因此,经过几天的调查和调试,什么不是,答案是,网站设置相同,除了一个我从未想过的地方;无意中使用管理共享而不是服务器上的本地物理路径创建了实时站点上的目录。在实际站点上切换路径后,API将按照预期与其余代码一起工作。

原始问题:

我有两个网站托管在同一个应用程序池中的同一台服务器上。网站1是我的测试床。我有一个小类试图调用第三部分函数,​​它基本上等同于验证第三方允许的用户中是否存在给定用户。如果是,则返回true,否则返回false。如果返回为真,它将重定向到第三方,否则用户对第三方一无所知。

在我的开发网站上,我的代码100%没有错误,我得到了预期的结果。它总是在这里工作,从来没有成为问题。但是,当我将其移动到实际网站时,我得到 请求获得类型'System.Net.WebPermission,Failed 的权限。经过广泛的谷歌搜索后,我仍然感到困惑,这已经过了几天。这就是为什么我如此困惑:

  1. live和dev站点运行的服务器和帐户是相同的。
  2. 他们的应用程序池是同一个
  3. 代码100%完全相同。
  4. web.configs完全相同。
  5. 也许最令人费解的部分是我在vb.net中使用母版页系统。代码实际上在master-page的page_load事件中执行。开发站点运行没有问题,但只要您尝试加载页面,代码就会抛出异常。最奇怪的部分是,如果我从主页page_load中取出代码并创建一个新的空白页,除了这个调用和调用它的page_load代码之外什么都没有,它就可以了。

    我已经彻底检查过这个母版页了,我无法相信它可以在dev上工作但不能在线工作,昨天当我在实时网站上进行新页面和相同代码的实验时,我完全被吓到了。

    到目前为止,我尝试解决此问题:

    1. 在AppPool中加载用户个人资料= true
    2. 直接比较代码以确保它是1:1
    3. 下运行的帐户的已验证权限
    4. 重新启动的网络服务器
    5. 通过web / config
    6. 设置完全信任

      我很茫然。下面是代码 - 它很简单,但这个问题仍然存在。我无法弄清楚为什么它在现场网站上工作,而不是我需要它的特定页面。这是相应的代码:

      Sub page_load()      
          If Not Page.IsPostBack Then
              Dim SFUser As New StorefrontUser
              'Response.Write(SFUser.GetadminticketValue)
              If SFUser.isActiveStorefrontUser = 1 Then
                  LBCELink.Style.Add("visibility", "visible")
              Else
                  LBCELink.Style.Add("visibility", "hidden")
              End If
          End If
      End Sub
      

      这是它调用的类/函数:     公共类StorefrontUser     昏暗的店面As New SXI.StorefrontAPIHelper(“http://subdomain.blah.com/3rdpartyAPI.asmx”)

      Function isActiveStorefrontUser() As String
          If GetAdminTicket() <> "UNAUTHORIZED ACCESS" Then
              Return storefront.GetValue("UserProperty", "IsActive", storefront.FindUserID(theID))
          Else
              Return "1"
          End If
      
      End Function
      Function GetadminticketValue() As String
              Return GetAdminTicket()
      
      End Function
      Public Function GetAdminTicket() As String
          Dim ScratchTicket As String = String.Empty
          Try
              ScratchTicket = storefront.ObtainUserTicket("user", "password", "Identity")
          Catch ex As Exception
              HttpContext.Current.Response.Write(ex.ToString)
              ScratchTicket = String.Empty
          End Try
          Return ScratchTicket
      End Function
      
      End Class
      

      如果它不是主页面的一部分,可以在Live网站上正常工作,在任何地方都可以在开发网站上正常工作。完全难倒。如果我的格式很差或者我的问题缺乏清晰度,请道歉;第一次打电话的人,长时间的倾听者。

      最后一条重要的信息是,要使用他们的API需要引用第三方的dll - 这似乎是一个有效的争用点,除了它适用于我创建的空白页面,而不是这个主页面与开发站点的主页面相同。

      提前感谢您可以放下任何光线。

0 个答案:

没有答案