3

私の問題に対する回答の一部が複数の投稿に広がっているようですが、それをまとめることは今のところうまくいきませんでした。この投稿が回答されたときに、より完全なガイドが形成されることを願っています

問題

ASP.NET Web フォーム アプリケーション (W1) を使用しており、しばらくして別の MVC アプリケーション (M1) へのアップグレードを開始したいと考えています。W1 を含むソリューションが 4.5 にアップグレードされ、M1 がソリューションに作成されました。W1 は、ASP.Net メンバーシップ フレームワークを使用します。

テストケース

M1 では、HomeController の About ページに Authorize 属性を追加しました。

[Authorize] public ActionResult About()

ユーザーがログインする必要がある W1 のページから、M1 の about ページへのリンクを追加しました。

期待

ユーザーが W1 にログインし、M1 についてのページへのリンクをクリックすると、M1 に自動的にログインできることを期待しています。

構成

ステップ1

ここで概説されている方法を使用して、W1 から validationKey と decryptionKey を抽出しました。これは論理的な手順のように思えますが、別のキーでもユーザーが W1 にログインできるため、これが必要かどうかはわかりません。

ステップ2

hereおよびhereの情報に従い、かなりのデバッグを行った後、プロジェクトの Web.config ファイルのセクションを次のように変更しました。

W1 の場合:

<system.web>  
    <authentication mode="Forms">
          <forms name="WRSAUTH"
                 loginUrl="~/Account/Login.aspx"
                 defaultUrl="Default.aspx"
                 protection="All"
                 timeout="60"
                 path="/"
                 domain=".localhost"
                 requireSSL="false"
                 slidingExpiration="true"
                 cookieless="UseCookies"
                 enableCrossAppRedirects="false" />
        </authentication>
        <machineKey validationKey="<ValidationKey>"
                    decryptionKey="<DecryptionKey>"
                    validation="SHA1"
                    decryption="AES"/>
<compilation debug="true" targetFramework="4.5">
     <httpRuntime maxRequestLength="12288" />
</system.web>

M1 の場合:

  <system.web>
    <authentication mode="Forms">
      <forms name="WRSAUTH" 
             loginUrl="~/Account/Login" 
             defaultUrl="~/" 
             protection="All" 
             timeout="60" 
             path="/" 
             domain=".localhost" 
             requireSSL="false"           
             slidingExpiration="true"
             cookieless="UseCookies" 
             enableCrossAppRedirects="false"/>
    </authentication>
    <machineKey validationKey="<ValidationKey>" 
                decryptionKey="<DecryptionKey>" 
                validation="SHA1" 
                decryption="AES"/>
    <compilation debug="true" targetFramework="4.5"/>
    <httpRuntime targetFramework="4.5"/>
  </system.web>
  <system.webServer>
    <modules>
      <!--<remove name="FormsAuthentication"/>-->
    </modules>
  </system.webServer>

現在のステータス

M1 についてのページを対象とする W1 のリンクをクリックすると、ユーザーは認証されず、ログイン画面が表示されます。

構成に欠けているものはありますか?

4

1 に答える 1