在ASP中使用Windows身份验证时如何注销.像这样的网络.配置?

<authentication mode="Windows" />

我已经try 过以下方法,但没有成功.它会重定向,但不会注销用户.

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

背景信息:

我必须使用Windows身份验证,因为我需要使用Active Directory模拟身份才能访问本地文件.我不能用表单身份验证来模拟,因为HttpContext.Current.User.Identity不会是WindowsIdentity.

推荐答案

使用"Windows"身份验证时,服务器端的注销按钮不起作用.如果需要注销按钮或关闭用户浏览器,则必须使用"表单"身份验证.

Asp.net相关问答推荐

内容根路径在 .NET 6 中如何工作?

.Net Framework:w3wp.exe 中的异常

ASP MVC 授权除少数之外的所有操作

如何使用特定视图(不是控制器名称)返回 ActionResult

System.Web.Helpers.Crypto - 盐在哪里?

使用 jQuery 验证插件匹配两个字段

如何从 RouteData 获取路由名称?

RestSharp 不反序列化 JSON 对象列表,始终为 Null

使用 JSON.NET 解析 json 字符串

为什么对 ASP.NET MVC 控制器的调用不执行 DelegatingHandler?

带有 ASP.NET MVC 6 锚标记助手的 QueryString

如何在 ASP.NET 站点中添加 favicon.ico

为什么混合 Razor Pages 和 VueJs 是一件坏事?

ASP.NET 发布try 复制不存在的文件

如何直接在 .aspx 页面中访问 web.config 设置?

在 ASP.NET MVC 中获取服务器机器名称?

为什么 Controls 集合不提供所有 IEnumerable 方法?

IE9 JavaScript 错误:SCRIPT5007:无法获取属性ui的值:对象为空或未定义

如何在 ASP.NET 响应中传递大文件?

无法使用 ip:port 访问 WEB API,但可以在 VS 调试模式下使用 localhost:port