【问题标题】:logout without any reason in asp.net在asp.net中无故注销
【发布时间】:2012-11-27 23:57:16
【问题描述】:

我用 asp.net 做了一个网站,它运行良好。但有时它会无缘无故地将用户踢出他们的帐户。我在我的网络配置中提到了会话和网络表单超时。但它再次发生。 而且我的会议数据也不是太多。例如一个词!(期刊x)。 任何人都可以帮助我吗?...我变得困惑! 这是我的网络配置:

<?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <appSettings>
    <add key="ChartImageHandler" value="storage=session;timeout=5;" />
  </appSettings>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />


    <handlers>
      <remove name="ChartImageHandler" />
      <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST"
        path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </handlers>
  </system.webServer>
  <system.net>

    <mailSettings>
      <smtp from="waag@waag.ir">
        <network host="mail.waag.ir" port="25" userName="*****" password="*****"/>
      </smtp>
    </mailSettings>
  </system.net>
  <connectionStrings>

    <!--<add name="dbconn" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
        <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>-->


    <add name="dbconn" connectionString="Password=****;Persist Security Info=True;User ID=****;Initial Catalog=esfahanhost_****;Data Source=174.142.4.132" providerName="System.Data.SqlClient" />

    <remove name="LocalSqlServer"/>

    <add name="LocalSqlServer" connectionString="Password=****;Persist Security Info=True;User ID=****;Initial Catalog=esfahanhost_****;Data Source=174.142.4.132" providerName="System.Data.SqlClient" />


  </connectionStrings>
  <system.web>





    <httpHandlers>
      <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        validate="false" />
    </httpHandlers>
    <membership defaultProvider="AspNetSqlMembershipProvider" userIsOnlineTimeWindow="15">

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

      </providers>
    </membership>


    <sessionState mode="InProc" timeout="30"/>
    <roleManager enabled="true"/>
    <authentication mode="Forms">  
      <forms timeout="30" slidingExpiration="true" name="AC7.ASPXAUTH" />
    </authentication>

      <compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
        <assemblies>

          <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
          <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
      </compilation>
      <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" enableEventValidation="false" viewStateEncryptionMode="Never" enableViewStateMac="false">
          <controls>
              <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting"
                  assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
          </controls>

      </pages>

  </system.web>

</configuration>

【问题讨论】:

  • 您的应用是同时丢弃所有会话还是仅丢弃单个会话,而其他会话保持活动状态?
  • 每个会话单独抛出。
  • 您能否看到您服务器上的事件查看器中引发的有关无效票证的任何事件?

标签: asp.net asp.net-membership membership-provider


【解决方案1】:

登录信息存储在一个 cookie 中,如果您没有在 web.config 上为 cookie 设置域,并且您从例如 www.domain.com 移动到 domain.com,则 cookie 不起作用并且可能会注销.

所以将表单标签上的domain 设置为(不要放置www):

<authentication mode="Forms">  
  <forms domain="yoursitename.com" timeout="30" slidingExpiration="true" name="AC7.ASPXAUTH" />
</authentication>

还在roleManager 标记和cookie 标记上设置

更多信息:
Can some hacker steal the cookie from a user and login with that name on a web site?
Multiple applications using same login database logging each other out

【讨论】:

  • 我也应该为会话这样做吗?
  • 非常感谢您的出色回答。我的最后一个问题是,domain="yoursitename.com" 需要“www”还是“http://”?
  • @SaeedTalaee 你不要设置 http:// - 你不要放置 www ether !这是使用它的点,用 www 设置相同的 cookie ether,或者没有它们 - 否则 cookie 是不同的。
  • 出现问题!!!我不能再登录了!当我登录时,什么也没有发生,登录页面再次出现。
猜你喜欢
  • 2010-11-11
  • 1970-01-01
  • 2013-12-21
  • 2013-03-25
  • 1970-01-01
  • 2021-09-21
  • 2013-11-08
  • 1970-01-01
  • 2016-07-09
相关资源
最近更新 更多