Подтвердить что ты не робот

Вывод аутентификации Windows ASP.NET

Как вы выходите из системы при использовании проверки подлинности Windows в ASP.NET, как этот web.config?

<authentication mode="Windows" />

Я уже пробовал следующее безуспешно. Он перенаправляет, но не выходит из системы.

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

Справочная информация:

Мне нужно использовать проверку подлинности Windows, потому что мне нужно олицетворять личность с помощью Active Directory, чтобы получить доступ к локальным файлам. И я не могу выдавать себя за использование проверки подлинности Forms, потому что HttpContext.Current.User.Identity не будет WindowsIdentity. Выдавать себя за использование проверки подлинности с помощью форм

4b9b3361

Ответ 1

При использовании аутентификации Windows не будет работать кнопка выхода на сервер. Вы должны использовать аутентификацию "Forms", если вы хотите выйти из системы или закрыть браузер пользователя.

Ответ 2

Только для браузеров IE вы можете использовать следующий javascript для выхода пользователя из системы, если используете проверку подлинности Windows. (Примечание: закрытие браузера не требуется, но рекомендуется, так как пользователь может использовать браузер, не являющийся IE).

Если пользователь нажимает "Нет", чтобы закрыть браузер, пользователю будет предложено ввести имя пользователя/пароль, если они попытаются получить доступ к странице на сайте, для которого требуется аутентификация.

try {
   document.execCommand("ClearAuthenticationCache");
}
catch (e) { }
window.close();

Этот код был взят из страницы SharePoint Signout.aspx.

Ответ 3

Аутентификация Windows работает на уровне IIS, передавая токен аутентификации Windows. Поскольку проверка подлинности происходит на уровне IIS, вы фактически не можете выйти из кода приложения. Однако, кажется, есть ответ на вашу проблему здесь. Это второй вопрос, который рассматривается и по существу включает использование аутентификации по формам и api. LogonUser Windows.

Ответ 4

У меня было приложение SharePoint с проверкой подлинности Windows, мне нужно было автоматически выйти из системы через 15 минут. Я перепутал некоторые коды, и вот результат. он работает в IE правильно.

<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);
} 

поместите эти коды на свою основную страницу, после простоя 15 минут вы увидите страницу входа. надейтесь, что эта помощь кому-нибудь

Ответ 5

У меня есть работа с использованием JavaScript в IE и Firefox, хотя он регистрирует вас из всего, что вы вошли в IE. Это работает в Safari, но Safari выдает предупреждение о фишинге. Не работает в 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(); 
    } 

Ответ 6

Лучшие ответы, которые я видел, найдены в связанных вопросах StackOverFlow:

Есть ли браузер, эквивалентный ClearAuthenticationCache IE?

и

Ведение журнала при использовании обычной проверки подлинности HTTP

В основном вам нужно отправить запрос AJAX на сервер с недопустимыми учетными данными и принять сервер.