web-dev-qa-db-ja.com

MVCアプリケーションで認証を切り替える方法は?

私はIndividual User Accounts認証を使用してインターネットMVCアプリケーションを作成しましたが、このプロジェクトはWindows認証を使用するイントラネットである必要があります...プロジェクトがほぼ完了したときに認証を切り替える方法は?私はMVCの第一人者ではありませんが、これは私にとって新しいテクノロジーなので、説明があればすべての手順を参考にしてください。

13
Bryuk

プロジェクトのWeb.config。最初のステップは変更です。

<authentication mode="Forms">
</authentication>

<authentication mode="Windows">
</authentication>

プロジェクトを選択し、プロパティウィンドウでF4キーを押すと、認証方法を変更できます。

ただし、ここにステップバイステップで入力する代わりに、この非常に簡単なチュートリアルを使用してください。 Windows認証を有効にする

16
Firearm

私が同じことを試みているグーグルを通してこの質問を見つけた、そしてFirearmのリンクはプロセスの正義を完全にしないので、私がここで行ったステップをリストしようとするでしょう。明らかに、私が何かを削除するように言った場合、それはそれを他の方法で使用していない場合にのみ意味します。これらの手順を特定の順序で実行する必要はないと思います。また、私はEntity Frameworkを使用しているため、それを削除するには他の場所を探す必要があります。

  1. ソリューションエクスプローラーでプロジェクトを強調表示し、f4キーを押します。これにより、そのプロジェクトのプロパティウィンドウが表示されます。匿名認証を無効にします。 Windows認証を有効にします。
  2. ツール-> NuGetパッケージマネージャー->ソリューションのNuGetパッケージを管理... Microsoft.AspNet.Identity.EntityFrameworkおよびMicrosoft.AspNet.Identity.Coreという名前に "owin"が含まれるものをすべてアンインストールします。
  3. Web.configを開きます。実行時、AssemblyBindingで、残されたOwinのもののすべてのdependentAssemblyを削除します。 system.webの下で、<authentication mode="None" /><authentication mode="Windows" /> <authorization> <deny users="?" /> </authorization>に置き換えます。 system.webServerの下で、handlersを削除します。モジュールの下で、<remove name="FormsAuthentication" />を削除します。
  4. アカウントを削除し、コントローラーとビューを管理します。モデルからManageViewModelsを削除します。
  5. App_Startの下で、IdentityConfigStartup.Authを削除します。
  6. 最上位のWeb構成のすぐ隣には、Startup.csがあります。それを取り除く。
  7. 新しいApplicationDbContextを作成します。 DbContextから派生する必要があります。コンストラクターでthrowIfV1Schema: falseを削除します。次に、ModelsフォルダーからIdentityModelsを取り除くことができます。新しい移行を追加し、データベースを更新します。
  8. 明らかに、Identityに自分で行った参照をすべて消去する必要があります。

可能な追加手順:* _LoginPartialビューを削除します。 _Layoutビューが更新され、そのビューの部分的な表示が次の行に置き換えられます。

 <p class="nav navbar-text navbar-right">Hello, @User.Identity.Name!</p>
10
Adam R. Grey

まったく同じ問題を検索してこの記事にたどり着きましたが、答えは少し古いので、MVC 5を使用するASP.NETでは、これはMicrosoftの詳細なドキュメントになるはずです。

  1. MVCプロジェクトでWindows認証を検出するために、ウィザードはweb.configファイルからauthentication要素を探します。

    <configuration>
        <system.web>
            <authentication mode="Windows" />
        </system.web>
    </configuration>
    
  2. Web APIプロジェクトでWindows認証を検出するために、ウィザードはプロジェクトの。csprojファイルからIISExpressWindowsAuthentication要素を探します。

    <Project>
        <PropertyGroup>
            <IISExpressWindowsAuthentication>enabled
            </IISExpressWindowsAuthentication>
        </PropertyGroup>
    </Project>
    

で見つかりました Azure Active Directory接続ウィザードを使用したエラーの診断

私の特定の問題については、Windows認証(事前設定)ではなくAzure ADへの切り替えでしたが、開発者ネットワークのWebサイトでより多くの手順が見つかりました。

3
chriszo111

SwitchUser機能を実装する方法についての質問ですが、答えが少し遅れるようですが、まだこれに苦労している人のために(Microsoft SharePointでも機能しない場合があります)。 ..)、これがどのように行われるかです:(私は記事を書き終えたところです)

MVC4およびWindows認証を使用してユーザー機能を切り替えます

ADとWindows Server 2012(またはそれ以上)を使用してイントラネットWebサイトでWindows認証を機能させる方法の詳細が必要な場合は、次の記事を参照してください。

ADおよびWindows Server 2012(以降)を使用したイントラネットWebサイトでのWindows認証

幸せなコーディング!

2
Dennis Betten