Asp.net-Mvc
如何在 MVC 應用程序中切換身份驗證?
我已經創建了帶有
Individual User Accounts身份驗證的 Internet MVC 應用程序,但是現在這個項目應該是帶有 Windows 身份驗證的 Intranet……當項目快完成時,如何切換身份驗證?我不是 MVC 的專家,這對我來說是新技術,所以請提供任何幫助,如果可能的話,請提供描述中的所有步驟=)
在您項目的 Web.config 中。第一步是改變:
<authentication mode="Forms"> </authentication>到
<authentication mode="Windows"> </authentication>選擇您的項目並在屬性視窗中按 F4 可讓您更改身份驗證方法。
但是,不要讓我一步一步地在這裡,只需使用這個非常容易遵循的教程: 啟用 Windows 身份驗證
由於我通過Google嘗試同樣的事情發現了這個問題,而 Firearm 的連結並沒有完全做到這一點,我將嘗試列出我在這裡經歷的步驟。顯然,如果我告訴您刪除某些內容,那僅意味著您沒有以其他方式使用它。我認為您不必按任何特定順序執行這些步驟。另外,我使用的是實體框架,所以你必須在別處尋找以刪除它。
- 在解決方案資源管理器中,突出顯示您的項目並按 f4。這將打開該項目的屬性視窗。禁用匿名身份驗證。啟用 Windows 身份驗證。
- 工具 -> NuGet 包管理器 -> 管理用於解決方案的 NuGet 包…解除安裝名稱中帶有“owin”的任何內容、Microsoft.AspNet.Identity.EntityFramework 和 Microsoft.AspNet.Identity.Core。
- 打開您的 Web.config。在執行時,在 assemblyBinding 下,刪除 Owin 的所有相關組件。在 system.web 下,替換
<authentication mode="None" />為<authentication mode="Windows" /> <authorization> <deny users="?" /> </authorization>. 在 system.webServer 下,刪除handlers. 在模組下,刪除<remove name="FormsAuthentication" />.- 刪除 Account 和 Manage 控制器和視圖。
ManageViewModels從您的模型中刪除。- 在 App_Start 下,去掉
IdentityConfigandStartup.Auth。- 在頂層,就在您的 Web 配置旁邊,是 Startup.cs。擺脫它。
- 創建一個新的 ApplicationDbContext。它應該派生自 DbContext。擺脫
throwIfV1Schema: false你的建構子。然後你可以擺脫IdentityModels你的模型文件夾。添加新的遷移並更新您的數據庫。- 顯然,您必須清除自己對 Identity 所做的任何引用。
可能的附加步驟: * 刪除 _LoginPartial 視圖。然後 _Layout 視圖將被更新以用以下行替換該視圖的部分顯示:
<p class="nav navbar-text navbar-right">Hello, @User.Identity.Name!</p>