【问题标题】:Having separate projects in one ASP.NET MVC 5 solution在一个 ASP.NET MVC 5 解决方案中拥有单独的项目
【发布时间】:2015-06-29 17:45:41
【问题描述】:
我想在一个 ASP.NET 解决方案中拥有多个项目(例如 20 个)。所有项目都有自己的数据库、模型、视图和控制器。
你能告诉我我该怎么做吗?网址会是怎样的?如果解决方案中有一个项目,它是这样的:
localhost:12345/控制器/视图
当有更多项目时,正确的配置会是这样吗? :
localhost:12345/ProjectName/Controller/View
还有一件事,我打算使用 Identity 2.0 Framework。用户登录一次就可以登录所有项目吗?谢谢。
【问题讨论】:
标签:
c#
asp.net
asp.net-mvc
asp.net-mvc-5
asp.net-identity
【解决方案1】:
您可以在一个解决方案中拥有任意数量的项目。只需右键单击 Project Explorer 窗口中的解决方案,然后选择 Add New Project。在每个项目的属性中,将其根目录设置为 /applicationname。
您需要查看 oAuth 的详细信息以实施单点登录方案,我无法真正帮助您,但这是该实施背后的全部目的,所以这绝对是可能的。
【解决方案2】:
你能告诉我怎么做吗?网址会是怎样的?
您的解决方案中可以有“n”个项目。您需要使用RouteConfig.cs 处理它,如果您有三个项目,即“Project1”、“Project2”和“Project3”。那么您各自的路线配置将如下所示:
routes.MapRoute(
name: "Default_1",
url: "Project1/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
同样,
routes.MapRoute(
name: "Default_2",
url: "Project2/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
用户是否可以在所有项目中登录?
登录一次?
是的,这绝对是可能的。 但是开箱即用的 ASP.NET Identity 不支持多个应用程序。话虽如此,通过Single Sign On 实现它是开发人员的任务
链接:How to implement it
希望对你有帮助!