1

我正在使用表单进行 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"); 

        }
4

0 回答 0