我有一个关于Sharepoint开发中安全控制的问题。我为这个问题找到了几个建议的解决方案,但他们都没有能够解决这个问题。我基本上做的是使用Visual Studio 2010将C#项目转换为VB项目。
此项目在Sharepoint中创建Visual Web部件并覆盖一组过程/函数,以便您可以在Web编辑器部件自定义属性中获取填充了SPP列表的下拉列表。新的VB项目似乎没有错误或转换错误,因为当我构建项目时,我没有收到任何警告/错误。解决方案部署是正确的,但是当我尝试在空的spp页面中使用我的Web部件时,我收到臭名昭着的消息“此页面上的Web部件或Web窗体控件无法显示或导入。无法找到类型或它未注册为安全“。
我仔细检查的是项目可视化Web部件“安全控制条目”集合,其中包含具有有效强名称的(假设的)正确条目
我对这部分项目进行了几次修改;即,在IIS web.config中,仍有一个条目<safecontrols>
包含“安全控制条目”中的相同信息。我甚至创建了另一个空项目,当您重命名Visual Web部件名称但仍然没有运气时,所有默认名称都试图避免这种问题。
嗨@Tome。如果可以的话,我会非常乐意附上源项目。
@Adi,我无法调试应用程序,因为我的本地Sharepoint由于不安全的控制而拒绝使用Web部件。 对于编年史,我的SPP 2010运行在虚拟机中的W2008服务器上,我相信它有效,因为这不是我写的第一个项目。正如我所说,我在SPP开发方面相当新,但我知道如何找到我需要的信息,以便在新环境中编程时遇到的问题(不是这次,似乎)。
最初的C#项目运行完美,但显然,我在VB中翻译期间写了一些错误的行。如下所示,项目的文件SharePointProjectItem.spdata包含标记为<SafeControl>
的行。
<?xml version="1.0" encoding="utf-8"?>
<ProjectItem Type="Microsoft.VisualStudio.SharePoint.VisualWebPart" DefaultFile="LeaveWebPartUserControl.ascx" SupportedTrustLevels="FullTrust" SupportedDeploymentScopes="Site" xmlns="http://schemas.microsoft.com/VisualStudio/2010/SharePointTools/SharePointProjectItemModel">
<Files>
<ProjectItemFile Source="Elements.xml" Target="LeaveWebPart\" Type="ElementManifest" />
<ProjectItemFile Source="LeaveWebPart.webpart" Target="LeaveWebPart\" Type="ElementFile" />
<ProjectItemFile Source="LeaveWebPartUserControl.ascx" Target="CONTROLTEMPLATES\LeaveApplicationVB\LeaveWebPart\" Type="TemplateFile" />
</Files>
<SafeControls>
<SafeControl Name="SafeControlEntry1" Assembly="$SharePoint.Project.AssemblyFullName$" Namespace="LeaveApplicationVB.LeaveWebPart" TypeName="*" IsSafe="true" IsSafeAgainstScript="false" />
</SafeControls>
</ProjectItem>
顺便说一下,我今天早上再试一次,从头开始重写所有东西,看看能得到什么。
答案 0 :(得分:0)
SPP提出的关于&#34;不安全控制的问题&#34;是因为,在C#项目翻译期间,我确实按照C#语法包含了名称空间标识符。
从VB代码中删除命名空间标识符确实解决了这个问题。 现在,该项目能够为我的可视化Web部件创建自定义编辑器部件。