1

2 つの個別の Asp.Net アプリケーションを作成しました。
アプリ 1: 管理者
アプリ 2: レポート

管理アプリケーションは IIS 7.0 で既にホストされています。ここで、 ReportsアプリにリンクするためのリンクをAdmin Applicationに提供する必要があります。そこでは、Reports アプリに再度ログインする必要はありません。

これで、IIS のAdmin Appの下にレポート用の仮想ディレクトリが作成されました。だから私の質問は、両方のアプリケーションに共通の認証を提供する方法です.?? :フォーム認証を使用しています

前もって感謝します

4

4 に答える 4

3

構成で 3 つのことを行う必要があり、各アプリケーションが一致する必要があります。

  • Applicationメンバーシップ プロバイダーとロール プロバイダーで同じ属性を持ち、同じデータベースを使用します:との子の子のapplicationName属性。これは、認証および承認データが共有されることを意味します。addprovidermembershiproleManager

  • 認証 Cookie の暗号化と検証に同じキーを使用します (machineKey要素上)。(これは、アプリの起動ごとに新しいキーが生成されないため、アプリ プールの再起動後もログインが存続することも意味します。)

  • 同じ Cookie が使用されるように、両方のアプリが要素で同じname属性を使用するようにします。forms

[正しい属性を見つけた後、3 番目のポイントで更新。]

于 2012-08-01T13:44:37.487 に答える
2

管理アプリの下に仮想ディレクトリの代わりにアプリケーションが必要になる場合があります。

web.config で enableCrossAppRedirects="true" を設定する必要があります。

両方のアプリが共通の machineKey を共有する必要があります。machineKey を生成するツールは次のとおりです: http://aspnetresources.com/tools/machineKey

web.config エントリの例:

<authentication mode="Forms">
  <forms name=".ASPNETAUTH"
      enableCrossAppRedirects="true"
      loginUrl="Login.aspx"
      protection="All"
      path="/"
      timeout="60" />
</authentication>


<machineKey validationKey='F1D92DF9B41E5D94E79946A10494F52FF26956F256667DB52E9FA9B30E6A4FF61E4C05F1AC2795330F34B7B1389E1BD75FD0D3DCD12E991BD09B9AD004C0FE0D'
            decryptionKey='B8940FB4A776EABD1525E7D9B58E9E5DE057B2F2A67AA913'
            validation='SHA1'/>
于 2012-08-01T13:49:40.340 に答える
1

PreApplicationStartMethodAttributeManaged Extensibility Framework Overviewをご覧になる必要があると思います

于 2012-08-01T13:36:16.963 に答える
1

重要なのは、各 web.config ファイルで同じマシン キー、検証キー、および復号化キーを使用する必要があることです。

また、すべてのフォーム認証パラメーターが各ファイルで一致していることを確認してください。

レポート アプリは、管理アプリのログイン ページに移動する必要があります。

于 2012-08-01T13:37:28.017 に答える