2015-03-31 48 views
0

我在哪里,我们让SharePoint 2013由ADFS服务器进行身份验证的环境。当我退出ADF的,我留在共享点登录。的SharePoint 2013 FederatedAuthentication为空

看来我的解决方案是使用FederatedAuthentication.SessionAuthenticationModule.SignOut();

然而,当我尝试这个,我得到对象引用不设置到对象的实例。

+1

你准确的问题是什么? – nils 2015-03-31 20:23:31

回答

0

我希望有人能指出我正确的方向。我试图让签出两个ADFS和SharePoint工作。下面是我使用

private void RemoveCookiesAndRedirect() 
    { 
     string ipUrl = GetIPUrl(); 
     //if (ipUrl != string.Empty) 
     //{ 
     string replyUrl = HttpUtility.UrlEncode(SPContext.Current.Site.RootWeb.Url); 
     string redirect = ipUrl + "?wa=wsignout1.0&wreply=" + replyUrl; 

     try 
     { 

       FederatedAuthentication.SessionAuthenticationModule.SignOut(); 

       if (Context.Session != null) Context.Session.Abandon(); 

       Context.Response.Redirect(redirect); 
      //} 
     } 
     catch (Exception ex) 
     { 
      LoggingService.LogError("LoginRedirect", ex.Message + " " + ex.InnerException + " " + ex.Data + " ipUrl:" + ipUrl + " redirect:" + redirect); 
     } 
    } 

    private string GetIPUrl() 
    { 
     IClaimsPrincipal user = Page.User as IClaimsPrincipal; 
     if (user == null) return string.Empty; 

     string ipUrl = string.Empty; 
     try 
     { 
      string providerName = (user.Identity.Name).Split('|')[1]; 
      ipUrl = SPSecurityTokenServiceManager.Local.TrustedLoginProviders[providerName].ProviderUri.AbsoluteUri; 
     } 
     catch 
     { 
      //TODO:Log it 
     } 
     return ipUrl; 
    } 

一旦进入FederatedAuthentication.SessionAuthenticationModule.SignOut()的代码;它错误了。