Asp.net-Mvc

如何在 MVC 應用程序中切換身份驗證?

  • October 29, 2019

我已經創建了帶有Individual User Accounts身份驗證的 Internet MVC 應用程序,但是現在這個項目應該是帶有 Windows 身份驗證的 Intranet……當項目快完成時,如何切換身份驗證?我不是 MVC 的專家,這對我來說是新技術,所以請提供任何幫助,如果可能的話,請提供描述中的所有步驟=)

在您項目的 Web.config 中。第一步是改變:

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

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

選擇您的項目並在屬性視窗中按 F4 可讓您更改身份驗證方法。

但是,不要讓我一步一步地在這裡,只需使用這個非常容易遵循的教程: 啟用 Windows 身份驗證

由於我通過Google嘗試同樣的事情發現了這個問題,而 Firearm 的連結並沒有完全做到這一點,我將嘗試列出我在這裡經歷的步驟。顯然,如果我告訴您刪除某些內容,那僅意味著您沒有以其他方式使用它。我認為您不必按任何特定順序執行這些步驟。另外,我使用的是實體框架,所以你必須在別處尋找以刪除它。

  1. 在解決方案資源管理器中,突出顯示您的項目並按 f4。這將打開該項目的屬性視窗。禁用匿名身份驗證。啟用 Windows 身份驗證。
  2. 工具 -> NuGet 包管理器 -> 管理用於解決方案的 NuGet 包…解除安裝名稱中帶有“owin”的任何內容、Microsoft.AspNet.Identity.EntityFramework 和 Microsoft.AspNet.Identity.Core。
  3. 打開您的 Web.config。在執行時,在 assemblyBinding 下,刪除 Owin 的所有相關組件。在 system.web 下,替換<authentication mode="None" /><authentication mode="Windows" /> <authorization> <deny users="?" /> </authorization>. 在 system.webServer 下,刪除handlers. 在模組下,刪除<remove name="FormsAuthentication" />.
  4. 刪除 Account 和 Manage 控制器和視圖。ManageViewModels從您的模型中刪除。
  5. 在 App_Start 下,去掉IdentityConfigand Startup.Auth
  6. 在頂層,就在您的 Web 配置旁邊,是 Startup.cs。擺脫它。
  7. 創建一個新的 ApplicationDbContext。它應該派生自 DbContext。擺脫throwIfV1Schema: false你的建構子。然後你可以擺脫IdentityModels你的模型文件夾。添加新的遷移並更新您的數據庫。
  8. 顯然,您必須清除自己對 Identity 所做的任何引用。

可能的附加步驟: * 刪除 _LoginPartial 視圖。然後 _Layout 視圖將被更新以用以下行替換該視圖的部分顯示:

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

引用自:https://stackoverflow.com/questions/20150410