我正在使用表单进行 AD 身份验证。我面临的问题是,由于我已经在计算机上登录了网络,所以网页显示我已经登录。即使我单击注销按钮,也保持登录状态。
仅当我在 IIS 7 中部署网站时才会发生这种情况。当我在调试模式下测试代码时,登录/注销按钮似乎工作正常。
IIS 7 设置中是否需要更改某些内容,或者只是代码不正确?
任何帮助表示赞赏。
这是 AD 的 web.config 部分
<connectionStrings>
<add name="ADService" connectionString="LDAP://Dcxxx.xxxx.local"/>
</connectionStrings>
<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
<providers>
<add name="AspNetActiveDirectoryMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" attributeMapUsername="sAMAccountName" connectionStringName="ADService" enableSearchMethods="true"/>
</providers>
然后表单身份验证标准是
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" name=".ADAuthCookie" timeout="15" slidingExpiration="false" protection="All"/>
</authentication>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
在 sitemaster.aspx.cs 我添加了以下代码以强制注销
protected void Unnamed2_LoggingOut(object sender, LoginCancelEventArgs e)
{
HttpContext.Current.Session.Clear();
HttpContext.Current.Session.Abandon();
ViewState.Clear();
FormsAuthentication.SignOut();
Response.Redirect("~/Account/Login.aspx");
}