Cierre de autenticación de Windows de ASP.NET




windows-authentication logout (4)

¿Cómo se desconecta al usar la autenticación de Windows en ASP.NET como este web.config?

<authentication mode="Windows" />

Ya he intentado lo siguiente sin éxito. Redirige, pero no cierra la sesión del usuario.

void logoutButton_Click(object sender, EventArgs e) {
    HttpContext.Current.Session.Clear();
    HttpContext.Current.Session.Abandon();
    ViewState.Clear();
    FormsAuthentication.SignOut();
    Response.Redirect("/");
}

Información de fondo:

Tengo que usar la autenticación de Windows porque necesito suplantar la identidad usando Active Directory para obtener acceso a los archivos locales. Y no puedo suplantar el uso de la autenticación Forms porque HttpContext.Current.User.Identity no será una WindowsIdentity . Suplantar usando Autenticación de formularios


La autenticación de Windows funciona en el nivel de IIS al pasar su token de autenticación de Windows. Debido a que la autenticación ocurre en el nivel de IIS, no puede desconectarse del código de la aplicación. Sin embargo, parece que hay una respuesta a su problema here . Es la segunda pregunta abordada y, esencialmente, implica el uso de la Autenticación de formularios y la API de LogonUser de Windows.



Tenía una aplicación de SharePoint con autenticación de Windows, necesitaba el cierre de sesión automático después de 15 minutos. Mezclé algunos códigos y aquí está el resultado. funciona en IE correctamente.

<script type="text/javascript">
var t;
window.onload = resetTimer;
document.onmousemove = resetTimer;
document.onkeypress = resetTimer;

function logout() {

    try {
        document.execCommand("ClearAuthenticationCache");
        window.location.href = window.location.protocol.replace(/\:/g, '') + "://" + window.location.host + "/_layouts/customlogin14.aspx";
    }
    catch (e) { }

}

function resetTimer() {
    window.clearTimeout(t);
    t = window.setTimeout(logout, 900000);
} 

ponga estos códigos en su página maestra, después de 15 minutos de inactividad, verá la página de inicio de sesión. Espero que esto ayude a alguien


Tengo este trabajo usando JavaScript tanto en IE como en Firefox, aunque te desconecta de todo lo que iniciaste en IE. Funciona de alguna manera en Safari, pero Safari lanza una advertencia de phishing. No funciona en Opera

    try { 
        if (document.all) 
        { 
            document.execCommand("ClearAuthenticationCache"); 
            window.location = "/"; 
        } 
        else 
        { 
            window.location = "http://logout:[email protected]"; 
        } 
    } 
    catch(e) 
    { 
        alert("It was not possible to clear your credentials from browser cache. Please, close your browser window to ensure that you are completely logout of system."); 
        self.close(); 
    } 





logout