为什么Asp.Net Core 2.1 Identity使用Razor页面?

时间:2018-11-14 13:37:00

标签: c# asp.net-identity asp.net-core-2.0

我正在使用.Net核心身份Web应用程序(MVC),我在身份标识区域中设置身份并获取文件夹,但我不想在我的MVC应用程序中使用Razor页面,因此在Controller /查看?并请说明为什么Microsoft在MVC应用程序中使用剃须刀页面会受益于此方法。

谢谢

1 个答案:

答案 0 :(得分:3)

this GitHub issue中有一个解释:

  
    

当前唯一的选项似乎也是将Razor Pages用于Identity UI。我们中有些人希望完全控制我们如何使用身份,以便我们可以根据需要自定义身份。当前设置是完全不能接受的。如果我的整个项目都在使用MVC,那么我不希望Identity像Razor Pages一样生活在la-la land自己的文件夹中。它使项目结构一团糟,没有任何理由。

  
     

维护同一代码库的两个版本(MVC和Razor Pages)对我们来说非常昂贵,与Razor Pages版本相比,使用MVC实现并没有真正的好处。两种风格都完全在ASP.NET中。将代码移出该区域应该相对直接,并将其从Razor Pages转换为MVC。可能只涉及将页面从该区域移到您的主应用程序Pages文件夹中,然后调用AddIdentity而不是AddDefaultIdentity。

     
    

请修复这些选项,以便需要的人可以完全控制Identity并按自己的意愿使用它,无论是MVC方式还是Razor Pages方式。或者为我们提供足够的文档,以便我们可以将Identity添加到空白项目中,而无需使用Identity UI库或一些魔术支架伏都教。就目前情况而言,似乎没有关于Identity的文档不依赖新的脚手架系统和Identity UI。

  
     

默认UI完全是可选的。无论是将页面转换成MVC样式,还是将它们从该区域移出到主要项目中,您都应该能够将页面放入您的项目中,然后从那里进行任何操作。

总结:这种方法的好处是维护单个版本更容易,同时没有缺点。脚手架UI是可选的,您可以将其自己转换为不使用Razor页面的实现,也可以从头开始。