2011-02-03 6 views
2

私は、デフォルトのメンバーシップコントロールを使用するASP.NET 2010 Webアプリケーションを持っています。ログインすると、マスターのログインコントロールがログアウトコントロールを表示します。私がそれをクリックするとDefaultページにリダイレクトされますが、認証されたページにナビゲートすれば、それは私を許可します。そのため、ログアウトリンクをクリックしてCookieが強制終了される、ASP.NET 2010でセッションCookieを削除するにはどうすればよいですか?

FormsAuthentication.SignOut() 
Session.Abandon() 

しかし、私はまだ認証されたページに移動できます。実際にブラウザを閉じてもう一度開くと、それは私を止めるだけです。ここで

は私のweb.configファイルが....ある

<authentication mode="Forms"> 
      <forms 
     name=".ASPXAUTH" 
     loginUrl="~/Account/Login.aspx" 
     protection="All" 
     timeout="2880" 
     slidingExpiration="true" 
     defaultUrl="~/Authenticated/User/UserHome.aspx" 
     /> 
     </authentication> 

    <membership> 
      <providers> 
       <clear/> 
       <add name="AspNetSqlMembershipProvider" 
       passwordFormat="Hashed" 
      type="System.Web.Security.SqlMembershipProvider" 
      connectionStringName="ApplicationServices" 
      enablePasswordRetrieval="false" 
      enablePasswordReset="true" 
      requiresQuestionAndAnswer="false" 
      requiresUniqueEmail="false" 
      maxInvalidPasswordAttempts="5" 
      minRequiredPasswordLength="6" 
      minRequiredNonalphanumericCharacters="0" 
      passwordAttemptWindow="10" 
      applicationName="/"/> 
      </providers> 
     </membership> 

     <profile> 
      <providers> 
       <clear/> 
       <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/> 
      </providers> 
     </profile> 

     <roleManager enabled="true"> 
    <providers> 
    <clear /> 
    <add connectionStringName="ApplicationServices" applicationName="/" 
    name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" /> 
    <add applicationName="/" name="AspNetWindowsTokenRoleProvider" 
    type="System.Web.Security.WindowsTokenRoleProvider" /> 
    </providers> 
    </roleManager> 
+0

web.configを表示できますか? –

+0

承認セクションを投稿してください。あなたが持っていない場合は、この動作を説明します。 – mxmissile

答えて

4

これを試してみてください:

Response.Cookies["ASP.NET_SessionId"].Expires = DateTime.Now.AddYears(-1) 
FormsAuthentication.SignOut() 
Session.Abandon() 

// Now, forward to a safe unauthenticated page if SignOut() doesn't already do this. 
Response.Redirect("/default.aspx") 

これはすぐに期限切れにASP.NET_SessionIDクッキーを設定しようとします。ブラウザはコレクションからコレクションを削除する必要があります。私はVS2010でこれを実行していないので、塩の粒で私のタイピングを取ってください。

これがうまくいくかどうか教えてください。

関連する問題