Security 将自定义Asp.net应用程序部署到与Sharepoint相同的IIS站点
我正在尝试在与Sharepoint相同的网站上安装Asp.net应用程序。那么sharepoint的url在哪里呢?要访问应用程序,url应该在哪里。我已在此级别设置了IIS应用程序,但尝试使用bin中的自定义dll运行该应用程序会导致错误Security 将自定义Asp.net应用程序部署到与Sharepoint相同的IIS站点,security,sharepoint,Security,Sharepoint,我正在尝试在与Sharepoint相同的网站上安装Asp.net应用程序。那么sharepoint的url在哪里呢?要访问应用程序,url应该在哪里。我已在此级别设置了IIS应用程序,但尝试使用bin中的自定义dll运行该应用程序会导致错误“请求类型为“Microsoft.SharePoint.Security.SharePointPermission,Microsoft.SharePoint.Security,Version=12.0.0.0,Culture=neutral,PublicKey
“请求类型为“Microsoft.SharePoint.Security.SharePointPermission,Microsoft.SharePoint.Security,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c”的权限失败。”
我试图对dll进行签名并将其注册到sharepoint服务器GAC,但随后收到:
“System.Security.SecurityException:该程序集不允许部分受信任的调用方。”
如果我从应用程序bin目录中删除DLL,页面将加载,但我会丢失其中所需的功能。
编辑:只有当Dll在bin中时才会发生错误,它不依赖于Dll中的任何一行代码。
IIS版本6 Sharepoint:WSS 3.0 Windows Server 2003
更新:我运行了“caspol-machine-addfulltrust(dll路径)”,它成功了,但我仍然收到相同的错误 一旦您在SharePoint中使用IIS网站(称为SharePoint中的web应用程序),您的ASP.NET应用程序就不再只是一个ASP.NET应用程序。它是一个SharePoint应用程序(当然,SharePoint在ASP.NET上运行)。也就是说,除非您在web.config中翻找,以撤消SharePoint为特定虚拟目录设置的许多http处理程序 但是,将ASP.NET应用程序移动到SharePoint中运行本身并没有什么问题。将您的程序集/关联放入GAC是一个可能有所帮助的步骤,但对您来说似乎失败了。您的程序集是否可以引用不在GAC中的其他程序集?那可能是你的问题
如果程序集不在GAC中,则可以将其用于SharePoint中的ASP.NET页面和web部件(但不包括工作流、事件处理程序、自定义字段、功能接收器等)。但是,这有点痛苦,因为您可能需要设置代码访问安全性(CAS),这不是一个简单的过程。我不确定SPContext.Current.Web.CurrentUser.LoginName是否需要CAS策略,我倾向于仅将其用于Web部件,而不是ASP.NET页面。使用SharePoint快速搜索CAS让我想到了这一点:如果你真的想深入研究CAS,这看起来是一个很好的开始。是的,caspol.exe是你在这里获得快乐的关键。请参阅。将排除托管路径添加到SharePoint中,以便它不会试图“干扰”您的自定义web应用程序。它涉及.NET安全性。有两种方法可以解决这个问题,它们都涉及到向SharePoint站点添加“完全信任”。原因是SharePoint和您的应用程序无法访问彼此的资源
我终于解决了这个问题。我认为部分问题是通过尝试人们提出的不同建议而解决的,但最终解决问题的方法是将“”添加到web.config中。对于任何不知道它的人,应该在system.web部分下。我还需要添加几个dll。将dll添加到GAC有助于解决所有问题,但并没有解决所有问题 我有一个基本dll,它引用了多个系统dll和Microsoft.Sharepoint.dll。我已经在GAC上签名并注册,还尝试过使用caspol,但没有成功。