如何在MVC应用程序中切换身份验证?

Bry*_*yuk 13 authentication asp.net-mvc windows-authentication asp.net-mvc-4

我已经使用Individual User Accounts身份验证创建了Internet MVC应用程序,但现在这个项目应该是带有Windows身份验证的Intranet ...如何在项目完成时切换身份验证?我不是MVC的大师,这对我来说是新技术,所以任何帮助请尽可能地说明所有步骤=)

小智 16

在你项目的Web.config中.第一步是改变:

<authentication mode="Forms">
</authentication>
Run Code Online (Sandbox Code Playgroud)

<authentication mode="Windows">
</authentication>
Run Code Online (Sandbox Code Playgroud)

选择项目并在属性窗口中按F4可以更改身份验证方法.

但是,而不是我在这里一步一步地使用这个非常容易遵循的教程: 启用Windows身份验证

  • 如何对"个人用户帐户"身份验证类型进行"无身份验证"? (2认同)

Ada*_*rey 10

由于我通过谷歌尝试同样的事情发现了这个问题,并且Firearm的链接并不完全正确的过程,我将尝试列出我在这里经历的步骤.显然,如果我告诉你删除某些东西,那只会意味着你不使用它.我认为您不必按任何特定顺序执行这些步骤.此外,我正在使用实体框架,所以你必须寻找其他地方删除它.

  1. 在解决方案资源管理器中,突出显示您的项目并按f4.这将打开该项目的属性窗口.禁用匿名身份验证.启用Windows身份验证.
  2. 工具 - > NuGet包管理器 - >管理解决方案的NuGet包...卸载名称中包含"owin"的任何内容,Microsoft.AspNet.Identity.EntityFramework和Microsoft.AspNet.Identity.Core.
  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你的构造函数.然后你可以IdentityModels从你的Models文件夹中删除.添加新迁移并更新数据库.
  8. 显然,你必须清除你自己对Identity所做的任何引用.