2014-03-06 100 views
0

使用單點登錄在.Net中具有應用程序。我們已經實施CAS。單點登錄有效,但單點登出無效。在asp.net中使用CAS單點登出不會註銷用戶

在web.config中爲CAS的配置是:

<section name="casClientConfig" type="DotNetCasClient.Configuration.CasClientConfiguration, DotNetCasClient"/> 

<casClientConfig 
    casServerLoginUrl="http://aus-vc-bdpu-tl1.argous.com:8100/cas/login" 
    casServerUrlPrefix=" http://au-vc-bdpu-tl1.argous.com:8100/cas" 
    serverName="http://localhost:53124/" 
    cookiesRequiredUrl="~/CookiesRequired.aspx" 
    redirectAfterValidation="true" gateway="false" renew="false" singleSignOut="true" 
    ticketTimeTolerance="50000000" 
    ticketValidatorName="Saml11" proxyTicketManager="CacheProxyTicketManager" 
    serviceTicketManager="CacheServiceTicketManager" 
    gatewayStatusCookieName="CasGatewayStatus"/> 

我添加以下代碼以清除在註銷功能的Cookie:

ClearAuthCookie(); 
string redirectPage = System.Configuration.ConfigurationSettings.AppSettings["CASurl"]; 
Response.Redirect(redirectPage, true); 
public static void ClearAuthCookie() 
{ 
    HttpContext current = HttpContext.Current; 
    HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName); 
    cookie.Expires = DateTime.Now.AddMonths(-1); 
    cookie.Domain = FormsAuthentication.CookieDomain; 
    cookie.Path = FormsAuthentication.FormsCookiePath; 
    current.Response.Cookies.Add(cookie); 
} 

我有兩個問題:

( 1)在註銷時,頁面會被重定向到所需的頁面,但如果我通過後退按鈕返回到我的應用程序主頁並單擊各種鏈接,頁面將導航到鏈接,而不是o f要求用戶登錄。因此,註銷不成功。 (2)當用戶使用單點登錄的其他應用程序時,如果他從其他應用程序註銷,用戶仍然可以訪問作爲我們網站的父應用程序。因此,單一登出不起作用

請你可以建議我在這裏失蹤這個工作。

回答

0

您很可能現在想通了這一點 - 但你必須使用這個命令是:

CasAuthentication.SingleSignOut(); 

這將創建一個重定向到CAS服務器的服務器註銷並刪除本地認證cookeies

See also this SO answer

+0

您可以添加這應該去你的答案? – MarkyDD