我编写了一个功能(站点作用域),它将自定义菜单项添加到SharePoint 2007文档库的"新建菜单"和"EditControlBlock"中.仅当用户添加和编辑该文档库的权限时,才会显示这些菜单项.除了用户只具有父站点的读取权限但完全控制文档库的一种特殊情况之外,这种方法很有效.在这种情况下,EditControlBlock下的菜单项会正确显示,但新菜单下的菜单项不会显示.我为所有菜单项设置了相同的权限.以下是功能和元素清单文件中的示例条目
<?xml version="1.0" encoding="utf-8" ?>
<Feature
Id="59bba8e7-0cfc-46e3-9285-4597f8085e76"
Title="My Custom Menus"
Scope="Site"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="Elements.xml" />
</ElementManifests>
</Feature>
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction Id="EditMenu1" RegistrationType="FileType" RegistrationId="txt" Location="EditControlBlock" Sequence="106" ImageUrl="/_layouts/images/PPT16.GIF" Title="My Edit Menu" Rights="AddListItems,EditListItems">
<UrlAction Url="javascript:var surl='{SiteUrl}'; window.location='/test/mypage.aspx?siteurl='+surl+'&itemurl={ItemUrl}&itemid={ItemId}&listid={ListId}&Source='+window.location" />
</CustomAction>
<CustomAction Id="NewMenu1" GroupId="NewMenu" RegistrationType="List" RegistrationId="101" Location="Microsoft.SharePoint.StandardMenu" Sequence="1002" ImageUrl ="/_layouts/images/DOC32.GIF" Title="My New Menu" Rights="AddListItems,EditListItems">
<UrlAction Url="javascript:var surl='{SiteUrl}'; window.location='/test/mypage.aspx?siteurl='+surl+'&listid={ListId}&Source='+window.location" />
</CustomAction>
</Elements>
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?请指教.
此致,Jagannath
我在SharePoint 2007中编写了两个功能.一个是在站点级别的范围,它基本上将Web部件添加到激活它的网站集.此功能部件部署在"bin"目录下.其次是Farm scoped,它是我的自定义SPPersistedObject,并部署在管理中心.该程序集已添加到GAC.
从Web部分我需要更新我的自定义对象.在大多数情况下,这样做很好.但在一些服务器上遵循最小权限管理域帐户' http://technet.microsoft.com/en-us/library/cc263445.aspx '我得到以下错误
System.Security.SecurityException:访问被拒绝.在Microsoft.SharePoint.Administration.SPPersistedObject.Update()at MyWebPart.<> c__DisplayClass1.b__0()at Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper(Object state)at Microsoft.SharePoint.SPSecurity.<> c__DisplayClass4.b__2()at Microsoft位于Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)的MyWebPart.RenderWebPart(HtmlTextWriter writer)的Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode,Object param)上的.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)失败的程序集是:MyComputer
我是否需要设置任何权限或CAS策略以防止此错误?
以下是我当前为Web部件组件设置的CAS策略.我需要在这里进行任何更改吗?
<CodeAccessSecurity>
<PolicyItem>
<PermissionSet class="NamedPermissionSet" version="1" Name="MyPermission" Description="Permission set for my solution">
<IPermission class="System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Level="Medium" />
<IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
<IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
<IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="AllFlags" />
<IPermission class="Microsoft.SharePoint.Security.WebPartPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1" Connections="true" />
<IPermission class="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, …Run Code Online (Sandbox Code Playgroud)