-1

我正在開發在開發系統上工作得很好的Asp Mvc 4項目,它也在我的演示託管服務器上工作得非常好。 但是,當我上傳客戶端的服務器上的網站,它要求登錄每個頁面。當我在一個頁面上登錄時,我可以在該頁面上執行操作。但如果它打開另一個頁面,它會重定向到再次登錄頁面。ASP MVC 4每次請求後註銷用戶

我不明白原因。因爲它在我的本地系統以及我的演示託管上都能正常工作。但在客戶端託管它的行爲就像這樣。

我正在使用自定義授權屬性。但我在另一個運行良好的網站上使用這種方法。

請任何想法或解決方案。

以下是我的web.config文件:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <section name="AccountingSystem.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
     <section name="UI.Web.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 
    <connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=SQLSERVER4;Initial Catalog=clouddms_dms_demo;Integrated Security=False;User ID=*****;Password=******;Connect Timeout=15;Encrypt=False;Packet Size=4096" providerName="System.Data.SqlClient" /> 
    <add name="DocumentManagerEntities" connectionString="metadata=res://*/DataContext.csdl|res://*/DataContext.ssdl|res://*/DataContext.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=SQLSERVER4;initial catalog=clouddms_dms_demo;integrated security=False;;User ID=******;Password=*****;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <appSettings> 
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> 
    <add key="webpages:Version" value="2.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    <add key="PreserveLoginUrl" value="true" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    <add key="microsoft.visualstudio.teamsystems.backupinfo" value="1;web.config.backup" /> 
    <add key="microsoft.visualstudio.teamsystems.aspnetdevserver:/" value="8804;True;7480;1;-8587902403488351008" /> 
    </appSettings> 
    <system.web> 
    <compilation targetFramework="4.0" /> 
    <customErrors mode="Off" defaultRedirect="~/Error/" /> 
    <!--<customErrors mode="On" defaultRedirect="~/Error/"> 
     <error statusCode="403" redirect="~/Error/InsufcientPrivilage"/> 
     <error statusCode="404" redirect="~/Error/PageNotFound"/> 
    </customErrors>--> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login" timeout="2880" /> 
    </authentication> 
    <pages> 
     <namespaces> 
     <add namespace="System.Web.Helpers" /> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Optimization" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.WebPages" /> 
     </namespaces> 
    </pages> 
    <profile inherits="UI.Web.UserProfile" defaultProvider="DefaultProfileProvider"> 
     <providers> 
     <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" /> 
     </providers> 
    </profile> 
    <!--<profile defaultProvider="DefaultProfileProvider"> 
     <providers> 
     <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/"/> 
     </providers> 
    </profile>--> 
    <membership defaultProvider="DefaultMembershipProvider"> 
     <providers> 
     <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" /> 
     </providers> 
    </membership> 
    <roleManager enabled="true" defaultProvider="DefaultRoleProvider"> 
     <providers> 
     <add connectionStringName="DefaultConnection" applicationName="/" name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
     </providers> 
    </roleManager> 
    <sessionState mode="InProc" customProvider="DefaultSessionProvider"> 
     <providers> 
     <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" /> 
     </providers> 
    </sessionState> 
     </system.web> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <modules runAllManagedModulesForAllRequests="true" /> 
     <directoryBrowse enabled="false" /> 
     <defaultDocument> 
      <files> 
       <clear /> 
       <add value="Default.htm" /> 
       <add value="Default.asp" /> 
       <add value="index.htm" /> 
       <add value="index.html" /> 
       <add value="iisstart.htm" /> 
       <add value="default.aspx" /> 
       <add value="index.php" /> 
      </files> 
     </defaultDocument> 
     </system.webServer> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> 
       <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <entityFramework> 
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
     </entityFramework> 
    <applicationSettings> 
    <UI.Web.Properties.Settings> 
     <setting name="DataRootDir" serializeAs="String"> 
     <value>/Data/</value> 
     </setting> 
     <setting name="DataUserRoot" serializeAs="String"> 
     <value>/Data/Users/</value> 
     </setting> 
     <setting name="SiteDatalDir" serializeAs="String"> 
     <value>/Data/SiteData/</value> 
     </setting> 
     <setting name="FileIconDir" serializeAs="String"> 
     <value>/Data/SiteData/Icons/</value> 
     </setting> 
     <setting name="ContactPicDir" serializeAs="String"> 
     <value>/Data/SiteData/ContactPic/</value> 
     </setting> 
    </UI.Web.Properties.Settings> 
    <!--<UI.Web.Properties.Settings> 
    <setting name="DataGlobalDir" serializeAs="String"> 
      <value>/Data/</value> 
     </setting> 
     <setting name="UserDataRootDir" serializeAs="String"> 
     <value>/Data/Company/</value> 
      </setting> 
     <setting name="SiteDatalDir" serializeAs="String"> 
     <value>/Data/Site/</value> 
     </setting> 
    </UI.Web.Properties.Settings>--> 
     </applicationSettings> 
</configuration> 
+0

你也會在短時間內自動註銷嗎? – Mindless 2014-10-04 07:45:56

+0

它不是時間問題。它要求我在每個頁面請求上登錄。如果我登錄後刷新同一頁面,則不會重定向到登錄。 – Anjum 2014-10-04 09:10:48

+0

然後我認爲它的時間問題,10分鐘後刷新頁面看看會發生什麼? – Mindless 2014-10-04 11:29:59

回答

0

我嘗試了很多方法,也在互聯網上搜索,但無法找到解決方案。主要的困惑是相同的構建在其他服務器上工作。但在實際客戶端的服務器上,我退出了用戶。 所以我問我的客戶更改託管服務器。這工作。

現在新託管它的工作很好.............. 謝謝@Eric Wang您的想法。

0

我認爲你缺少你的Web.config計算機密鑰,生成一個here並將其放置在你的Web.config文件。

<system.web> 
    place your generated machine key here 
</system.web> 

機密鑰用於:配置算法和密鑰用於加密,解密,和形式的認證數據和視圖狀態數據的驗證,以及用於進程外會話狀態標識。

+0

但是完全相同的代碼在另一個主機上運行良好。 – Anjum 2014-10-04 11:53:36

+0

@Anjum如果您不願意提供任何演示代碼,我們會認真幫助您 – Mindless 2014-10-04 11:58:58