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、找到如下代码:
- <asp:login id="login" FailureText="<%$Resources:wss,login_pageFailureText%>" runat=server width="100%">
- {.... ....}
- </table>
- </layouttemplate>
- </asp:login>
3、在</layouttemplate>前,添加如下代码:
下载: login.js
- <script type="text/javascript"><!--
- document.getElementById("ctl00_PlaceHolderMain_login_RememberMe").checked=true;
- // --></script>
这样做可以使自动登陆文字前的checkbox默认下就选中,这样用户就不需要手动选择了
4、如果不想让用户看到这个自动登陆的选项,可以对 自动登陆 所在的行进行隐藏。首先要找到如下代码
- <tr>
- <td colSpan=2><asp:CheckBox id=RememberMe Enabled=”False” text=”<%$SPHtmlEncodedResources:wss,login_pageRememberMe%>” runat=server /></td>
- </tr>
这段代码就是用来显示自动登陆文字及自动登录文字前的checkbox的。
现在对<tr>添加display=none的属性对其进行隐藏:
- <tr style=”display:none”>
- <td colSpan=2><asp:CheckBox id=RememberMe Enabled=”False” text=”<%$SPHtmlEncodedResources:wss,login_pageRememberMe%>” runat=server /></td>
- </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, 登陆页面, 自动登陆, 表单认证