我正在使用新鑄造的MVC應用程序爲傳統WebForms 4.61應用程序設置SSO。以下一起使用這個原始SO Post中引用的參考文獻。一旦我設置機器密鑰,表單身份驗證將停止工作
在Web窗體應用程序的Web.config如下所示:
<authentication mode="Forms">
<forms loginUrl="~/account/login" timeout="120" defaultUrl="~/" />
</authentication>
<roleManager enabled="true" defaultProvider="DefaultRoleProvider">
<providers>
<add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</roleManager>
<membership defaultProvider="DefaultMembershipProvider">
<providers>
<add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<httpRuntime targetFramework="4.6.1" maxRequestLength="20480" requestValidationMode="2.0" executionTimeout="300" />
我可以登錄,一切都如預期。但是現在我想補充以下的machineKey配置:
<machineKey decryptionKey="AutoGenerate" validation="SHA1" validationKey="AutoGenerate" />
,以替換的默認行爲(沒有指定時):但是,只要我在的machineKey條目添加到
<machineKey decryptionKey="AutoGenerate,IsolateApps" validation="SHA1" validationKey="AutoGenerate,IsolateApps" />
web.config並重新運行應用程序,我無法再登錄。我使用標準的asp:Login控件來執行身份驗證。
爲什麼只要添加machineKey,認證就會停止工作?
PS。指定一個decryptKey和validationKey對行爲沒有任何影響,我無法登錄。
是否有一個特定的原因,你想刪除'IsolateApps'? – mjwills
「IsolateApps修飾符指定ASP.NET使用每個應用程序的應用程序ID爲每個應用程序生成一個唯一的加密密鑰」。因爲我想跨應用程序使用這個,所以我不能繼續使用這個說明符。 – TheEdge
當您嘗試登錄時會發生什麼? https://stackoverflow.com/questions/21731831/changing-machinekey-prevents-login-of-existing-users/21733831#21733831有幫助嗎? – mjwills