Sharepoint中使用Form认证后强制自动登陆的解决

Sharepoint 中,使用Form认证后,为了使用资源管理器打开文档,使用SharepointDesigner打开编辑页面时能够正常进行,用户登陆时必须手动选择 自动登陆。

为了解决这个问题,我修改了login.aspx文件
1、首先在 C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS 下找到login.aspx文件,一般都放在这里,除非你修改过默认的_layouts路径。
2、找到如下代码:

  1. <asp:login id="login" FailureText="<%$Resources:wss,login_pageFailureText%>" runat=server width="100%">
  2. {.... ....}
  3. </table>
  4. </layouttemplate>
  5. </asp:login>

3、在</layouttemplate>前,添加如下代码:

下载: login.js
  1. <script type="text/javascript"><!--
  2. document.getElementById("ctl00_PlaceHolderMain_login_RememberMe").checked=true;
  3. // --></script>

这样做可以使自动登陆文字前的checkbox默认下就选中,这样用户就不需要手动选择了
4、如果不想让用户看到这个自动登陆的选项,可以对 自动登陆 所在的行进行隐藏。首先要找到如下代码

  1. <tr>
  2. <td colSpan=2><asp:CheckBox id=RememberMe Enabled=”False” text=”<%$SPHtmlEncodedResources:wss,login_pageRememberMe%>” runat=server /></td>
  3. </tr>

这段代码就是用来显示自动登陆文字及自动登录文字前的checkbox的。
现在对<tr>添加display=none的属性对其进行隐藏:

  1. <tr style=”display:none”>
  2. <td colSpan=2><asp:CheckBox id=RememberMe Enabled=”False” text=”<%$SPHtmlEncodedResources:wss,login_pageRememberMe%>” runat=server /></td>
  3. </tr>

这样,就解决了Sharepoint中使用Form认证后强制自动登陆的问题。
PS:在更改的时候几个比较容易错的问题
1、不可以在Login.aspx页面中的任意位置加如上面的JS代码,需要等到页面的LOGIN FORM加载完成后再加载JS代码才有效
2、不可以直接对asp:CheckBox设置checked = true,这样是无法起作用的
3、我最初的时候想不隐藏该行,直接让asp:CheckBox不可更改,不可用,于是对asp:CheckBox控件使用了Enabled=false属性,但是其效果想当于没有选择自动登陆,所以这样做也是不可取的

Form验证方式下,Sharepoint总是有这样那样的问题,比如需要开启客户端集成等等,其登陆页面也及其丑陋,有时间要研究一下如何修改自定义登陆页面。

标签:aotomatically login, Form Authentication, login page, sharepoint, wss, 登陆页面, 自动登陆, 表单认证

相关日志

posted on 2008-05-25 13:14  jecoso  阅读(435)  评论(0编辑  收藏  举报