我的.Net系统位于sharepoint之外,只是在sharepoint中某页面有链接;我想在用户访问该页面时先对其合法性和权限进行检验,可是如何获得用户
登陆sharepoint时的AD帐号和密码?恳请大家多多指点!

解决方案 »

  1.   

    不用这么做吧,你本来就可以通过“管理中心”来控制用户的权限的啊,为什么还要这么做啊?而且这个似乎得不到的,因为AD中的用户,本身都可以服务器上的Windows用户,怎么能得到他们的密码呢
      

  2.   

    SharePoint里面本身就有很强大的权限管理设置,它可以具体到每一个文件的访问权限上,我没有装portal Server 只安装了 service,它下面在建用户的时候就能分配权限,见下面的地址:
    http://(你的域名)/_layouts/1033/aclinv.aspx
    如果你安装了portal server的话,那么它里面有详细的帮助,你可以去搜索一下
      

  3.   

    问题是我的这些页面只是简单地嵌入到sharepoint,并且用户又不愿在sharepoint中访问这些页面时再次登录(本系统自身的安全验证);
    所以如果有人或得了这些页面的URL,那么只要通过这些URL就可以进入了。
    望再给些意见,谢谢!
      

  4.   

    首先,你的这些页面是否就在Sharepoint所在的域名下?如果是,那么可以直接读取用户的登录信息,否则是没有办法的。ASP.NET对于AD也有几种验证的提交方法,例如是明文的话或者是加密的,Sharepoint是什么我不知道,你要自己查一下。或者你就看看MSDN里面提到的所有AD验证方法,然后逐个去试,看看哪种能够读取登录信息。一般在站点登录后,用户在关闭IE前访问同一个域名下的所有内容都会自动发送登录信息。如果用户选了“记住我的密码”,那么以后他访问此站点都会自动发送登录信息。
      

  5.   

    1、首先一点,密码是绝对取不到的。
    2、你的系统必须是与Sharepoint在同一站点/域名下(同意cat_hsfz),例如分属不同的虚拟目录,这样的话,可以通过HttpContext.Current.User.Identity.Name来读取用户名。
      

  6.   

    问题是我的这些页面只是简单地嵌入到sharepoint,并且用户又不愿在sharepoint中访问这些页面时再次登录(本系统自身的安全验证);
    所以如果有人或得了这些页面的URL,那么只要通过这些URL就可以进入了。
    望再给些意见,谢谢!
    =======================================================================
    这是匿名登录的问题(即有些页面不需要输入用户名/密码就可以直接访问),我也没有很好的解决,
    你可以到http://blog.joycode.com/kaneboy/去问问KaneBoy,他是SharePoint方面的高手。
      

  7.   

    我对sharepoint的细节并不了解!但是我想你可以使用一种变通的方法:
    那个链接显示成文本还是锚点由sharepoint来控制,通过对sharepoint编程可以实现。
    这样权限判断可以由sharepoint内部完成。以上是个人的建议!
      

  8.   

    你的“简单嵌入到Sharepoint站点”就是怎样嵌入?是在Sharepoint站点内的一个页面用IFrame来嵌入吗?还是在Sharepoint里面有一个指向该页面的链接?
      

  9.   


    修改AD登录密码的WebPart
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     string userName = SPControl.GetContextWeb(Context).CurrentUser.LoginName;
       userName = userName.Remove(0, userName.LastIndexOf('\') + 1);   DirectoryEntry user = new DirectoryEntry("WinNT://./" + userName);
       try 
       {
          user.Invoke("ChangePassword", new object[]{oldPsw, newPsw});
       } 
       catch (Exception ex) 
       {
          output.WriteLine("出错啦");
       };
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      

  10.   

    不好意思,我主要都不知道sharpoint是什么东东.
      

  11.   

    如果你的目标站点是在Sharepoint之外的,是很难获取登录信息的。如果你的目标站点仍然在域内,我建议你把它加入到Sharepoint的WebFarm,然后也用WSS扩展了它,但仅仅实现Server Extension扩展,不需要WSS的页面以及内容数据库。然后采用SPS的Single Sign On技术来实现类似Passport那样的统一登录。
      

  12.   

    回应楼主的留言:先说把.NET页面放到DocLib/Form提示没有权限执行的问题吧。其实aspx是不应该放在任何Sharepoint特有的“列表”类型目录下的,你应该在列表目录之外(例如根目录或者你自己建目录)放置aspx文件,至于管理方式就应该用Frontpage Server Extension兼容的方式(例如使用Frontpage或者Windows的Web文件夹/网上邻居)。如果你一定要把aspx放到List/Form下面(例如该aspx就是操作该List)的,可能就要专门设置一下权限了。另外关于WebFarm和SSO,你可以查看SPS自带的帮助文件,里面应该都有说的了。
      

  13.   

    没有办法取道用户的密码,如果需要credential可以通过CredentialCache.DefaultCredentials取得
      

  14.   

    其实楼主应该看看Sharepoint本身的帮助及SDK,那或许有帮助。另外有一位叫做Kaneboy的MSMVP是主要研究ASP.NET特别是Sharepoint方面的,你可以找到他的blog看看。