专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > SharePoint

webpart程序权限有关问题

发布时间:2010-06-13 14:10:24 文章来源:www.iduyao.cn 采编人员:星星草
webpart程序权限问题
我自己写了个webpart,SPQuery太麻烦了,为了写查询语句方便,我引用了别人写的一个dll文件(封装好了一些SPQuery查询方法),一把dll文件放入assembly中了,但是一运行就报错,求兄弟们给个解决办法。
部分代码如下

C# code

                        string queryStr = "SELECT * FROM MyList001 WHERE ID>1";
                        FriendlyQuery query = new FriendlyQuery(web, queryStr);
                        query.Scope = FriendlyQuery.QueryScope.AllItems;
                        gridview.DataSource = query.GetItems().GetDataTable();
                        gridview.DataBind();


,运行就报
HTML code

Title:System.Security.SecurityException: 该程序集不支持部分受信任的调用方。 在 MyWebPart.WebPartTest.BindGridView() 在 MyWebPart.WebPartTest.GridViewLoad(Object sender, EventArgs e) 在 System.Web.UI.Control.OnLoad(EventArgs e) 在 System.Web.UI.WebControls.DataBoundControl.OnLoad(EventArgs e) 在 System.Web.UI.Control.LoadRecursive() 在 System.Web.UI.Control.AddedControl(Control control, Int32 index) 在 System.Web.UI.ControlCollection.Add(Control child) 在 MyWebPart.WebPartTest.CreateChildControls() 失败的操作是: LinkDemand 失败的程序集的区域是: MyComputer




如果改为SPQuery就不报错。
C# code

                            SPQuery spquery = new SPQuery();
                            spquery.Query = string.Format("<Where><Geq><FieldRef Name='{0}' /><Value Type='Counter'>{1}</Value></Geq></Where>", "ID", "1");
                            gridview.DataSource = list.GetItems(spquery).GetDataTable();
                           gridview.DataBind();




------解决方案--------------------
你需要在webconfig里添加你的DLL 信息 或者加到GAC中 重新启动IIS
------解决方案--------------------
你要把你的web part所在的dll强签名后,放入GAC,并且在web.config中添加类似下面的东东:
XML code
      <SafeControl Assembly="YouAssemblyName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=84dd8b59e2770812" Namespace="YouNamespaceName" TypeName="*" Safe="True" />
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: