这个问题折腾了我好几天,现在把我从网上查到的并且经过实践出的方法写出来,给遇到相同问题的朋友一些帮助
其实我这个方法是针对源网站是code-behind形式的解决方法,如果你的代码和页面是在一起的,那么根本没这么麻烦

1、把自己的asp.net网站发布,编译成一个dll的形式。
     因为sharepoint不支持code-behind形式,如果不想自己去把代码和页面合并起来,哪么只能选择编译成dll,最好去装一个vs2005的插件,它可以把生成的dll命名。反正我用随即生成的dll测试是不成功的,也许哪步没作对吧
 
     插件下载地址:http://download.microsoft.com/download/9/4/9/9496adc4-574e-4043-bb70-bc841e27f13c/WebDeploymentSetup.msi   

2、把生成的dll存入sharepoint根目录下的bin文件夹,并修改根目录下的webconfig,把此dll设置成安全控件
    在web.config中查找 <SafeControls>,在其下添加
    <SafeControl Assembly="soft_oa, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="channel_oa" TypeName="*" Safe="True" />
     其中,assembly后面的内容使用 Lutz Reader's .NET Reflector 这个软件来查看。
     还要注意两点,编译前的cs文件里面的代码要放在命名空间里,格式如下

namespace mynamespace
{
        
public partial class mykq : System.Web.UI.Page
        
{
               
protected void Page_Load(object sender, EventArgs e)
                
{
                        ..
                        }

                 }

        }


    而页面文件里面的 Inherits 要写成 Inherits="mynamespace.mykq" 的形式
   
3、如果你的代码中有数据库的连接,那么还要进行下面的修改
     在web.config中查找
     <trustLevel name="WSS_Minimal" policyFile="C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\config\wss_minimaltrust.config" />
      根据路径找到wss_minimaltrust.config
      在其中查找  <SecurityClasses>,把下面代码放入里面
     <SecurityClass Name="SqlClientPermission" Description="System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      然后查找 IPermission ,把下面代码放入其下
      <IPermission class="SqlClientPermission"
         version="1"
         Unrestricted="true"
       />

4、在designer中,新建个虚拟站点,然后把你的页面通过designer传到虚拟站点中,就OK了

posted on 2008-02-27 14:14  晃晃悠悠  阅读(378)  评论(0)    收藏  举报