[英]ASP.NET MVC redirect to logon page always
我以自己的方式使用ASP.NET獨立成員身份。 為此,我在用戶登錄系統時設置FormsAuthentication.SetAuthCookie,並且還從web.config中刪除了所有成員關系配置,例如配置文件,角色和成員資格設置。
問題是我無法訪問任何控制器。 ASP.NET MVC將我重定向到/ Account / Logon頁面,但即使我在LogOn操作方法中也無法捕獲斷點,因此也看不到任何已解析的內容。
究竟是什么會導致這種奇怪的行為? 請詢問您是否需要其他信息以了解問題。
我的web.config設置在下面。
<configuration>
<configSections>
</configSections>
<appSettings>
<add key="webpages:Version" value="1.0.0.0" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="enableSimpleMembership" value="false" />
<add key="autoFormsAuthentication" value="false" />
</appSettings>
<system.web>
<globalization uiCulture="tr-TR" culture="tr-TR" />
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" 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.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
<httpModules></httpModules>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"></modules>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.8.0" newVersion="4.0.8.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
因為您說您沒有在“登錄后”操作中達到斷點,所以建議您在“登錄后”方法上設置AuthoriseAttribute
(或在RegisterGlobalFilters
全局設置)。 Logon Post方法需要匿名訪問,否則將無法接收用戶名和密碼。
建議您從“帳戶”控制器中發布相關的“操作”,如果沒有幫助,則發布Global.asax RegisterGlobalFilters方法的內容,
就像理查德提到的一樣,我認為本文還向您展示了如何將AllowAnonymousAttribute與應用於MVC項目的AuthoriseAttribute一起應用。 http://weblogs.asp.net/jgalloway/archive/2012/04/18/asp-net-mvc-authentication-global-authentication-and-allow-anonymous.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.