当前位置: 代码迷 >> SharePoint >> 请问一下sharepoint2013自定义代码登录的有关问题
  详细解决方案

请问一下sharepoint2013自定义代码登录的有关问题

热度:383   发布时间:2016-05-02 06:52:50.0
请教一下sharepoint2013自定义代码登录的问题
下面的是登录的js代码,现在的问题是,如果用户已经登录,当点到其中的子网站时,还是会弹出登录框,而用自带的登录就不会出现这种情况,下面的代码有什么问题吗?还想问一下,sharePoint2013自带的登录框,是怎样将用户信息传递给sharepoint网站的呢?请各位高手指点。
function Login(domain,strName, strPWD) {

              var location = "/login/default.aspx";
              var auth = null;

              if (window.XMLHttpRequest)// Firefox, Opera 8.0+, Safari
                  auth = new XMLHttpRequest();
              else {
                  try {
                      auth = new ActiveXObject("Msxml2.XMLHTTP");
                  }
                  catch (e) {
                      auth = new ActiveXObject("Microsoft.XMLHTTP");
                  }
              }
              strName = strName.toLowerCase();
              if (strName.indexOf("\\") < 0) {
                  strName = domain + "\\" + strName;
              }
              auth.open('post', location, false, strName, strPWD);
              auth.send();
              switch (auth.status) {
                  case 200:
                      window.location.href = '/login/default.aspx'; // 登陆页面
                      var c = retUrl("Resource");
                      if (c == null)
                          window.location.href = '/';
                      else
                          window.location.href = '/'+c;
                      break;
                  case 401:
                      {

                          document.getElementById('error').innerText = "帐号或密码错误!";
                      }
                      break;

                  default: document.getElementById('error').innerText = '抱歉,请再试一次!';

              }
          }
------解决思路----------------------
windows登陆没有自带登陆框,只能用这种方式进行post登陆,我以前用过,访问子网站不会弹框,除非不在一个web application下面,才会有认证的问题;
不过我们用的时候,case200不会返回到你这个页面,而是直接进首页;
case 200:
window.location.href = '/login/default.aspx'; // 直接进入welcome页面
除非你是form认证,才有登陆页;
------解决思路----------------------
ajax post的页面,要非匿名的,返回的页面,匿名不匿名无所谓;还有ajax可以在F12开发者工具栏中调试,看看返回值,看看是不是有对象为空;