sharepoint 域认证的时候给用户一个友好的登陆界面
当sharepoint采用域认证的时候,访问的时候就弹出一个window窗口,要求输入domain\userid和password,用户和=输入后才能登陆成功,很多时候客户不习惯这样的登陆方式,而是习惯在一个页面里输入帐号和密码,点击按钮进行登陆,其实也是可以实现的。当然此文的方法很简单,代码网上也有,只不过提供一种思路。
方法是:新建立一个匿名验证的网站(如果你的sharepoint网站是http://****/,那么你可以建立一个http://****:81/的网站) ,建立一个首页(当然这个首页有帐号和密码的输入框,而且可以放一些不需要登陆也可以看的内容,设计得很漂亮),然后当用户输入帐号和密码后采用Microsoft.XMLHTTP来模拟登陆,需要说明的是该页面只能新建成.html的页面,对于.ASPX页面已经做了个测试是不可行的:
具体的代码如下:
步骤:打开->vs2005或者记事本,本实例运行进入的为"个人网站"页面,我的sharePoint 服务上的"我的网站" 地址为:"http://yx-pc/MySite/Person.aspx"
view plaincopy to clipboardprint?
<HTML>
<HEAD>
<TITLE>模拟登陆</TITLE>
</HEAD>
<BODY>
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
}
function startRequest(){
if(userid.value=="")
{
alert("请输入用户名!");
userid.focus();
}
else if(password.value=="")
{
alert("请输入密码!");
password.focus();
}
else
{
createXMLHttpRequest();
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.open("GET","http://yx-pc/MySite/Person.aspx%22,true,userid.value,password.value);
xmlHttp.send(null);
}
}
function handleStateChange(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200) {
window.location="http://yx-pc/MySite/Person.aspx";
}
else
{
alert("您的用户名或者密码不正确,请联系管理员!");
}
}
}
</script>
<label>userid
<input type="text" name="userid">
</label>
<p>
<label>password
<input type="password" name="password">
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="提交" onClick="javascript:startRequest();">
</label>
</p>
</BODY>
</HTML>
IE:运行
输入sharePoint 域用户名称、密码,登陆成功!
网站匿名访问的设置:
1、后台管理中心——>应用程序管理——>应用程序安全性——>验证提供程序 ;在编辑验证页面上选中“启用匿名访问复选框”,Ok!
2、在网站的主页上单击“网站操作——>网站设置——>修改所有网站设置”,在“用户和权限”部分,单击“高级权限”,单击“设置”——>“匿名访问——>匿名用户可访问性(整个网站)”,OK!