C# .NET Core重定向到同一解决方案下另一个项目中的控制器
是否可以在不使用绝对url的情况下重定向到.NET Core中同一解决方案中的另一个项目 我问这个问题是因为我看到很多web应用程序都有billing.website.com,它只提供计费功能,而app.website.com拥有大部分应用程序 我已经找到了,但不清楚用户cookie是否超时,我应该在哪里以及如何将用户重定向到 如果我有一个项目将在url account.website.com下处理身份验证,我应该如何在我的Startup.cs中设置它C# .NET Core重定向到同一解决方案下另一个项目中的控制器,c#,asp.net-mvc,asp.net-core,.net-core,asp.net-core-mvc,C#,Asp.net Mvc,Asp.net Core,.net Core,Asp.net Core Mvc,是否可以在不使用绝对url的情况下重定向到.NET Core中同一解决方案中的另一个项目 我问这个问题是因为我看到很多web应用程序都有billing.website.com,它只提供计费功能,而app.website.com拥有大部分应用程序 我已经找到了,但不清楚用户cookie是否超时,我应该在哪里以及如何将用户重定向到 如果我有一个项目将在url account.website.com下处理身份验证,我应该如何在我的Startup.cs中设置它 services.ConfigureApp
services.ConfigureApplicationCookie(options =>
{
// Cookie settings
options.LoginPath = "accounts.website.com";
options.AccessDeniedPath = Environment.GetEnvironmentVariable(AccessDeniedPath);
options.SlidingExpiration = true;
});
它必须是完整的绝对URL,因为无论项目是否存在于同一个解决方案中,在运行时,它们都是完全独立的web应用程序。一个不知道另一个是如何托管的,实际上,它们可以在任何IP、主机名、域、子域和端口下运行 你应该通过配置来处理这个问题。设置如下内容:
{
"LoginURL": "https://accounts.website.com/login"
}
然后你可以做:
services.ConfigureApplicationCookie(options =>
{
options.LoginPath = Configuration["LoginURL"];
...
});
然后,您只需要部署特定于环境的JSON或环境变量来覆盖每个环境的配置值。例如,开发时可能是
https://localhost:44301/login
相反。将.Net项目发布到服务器时,没有解决方案控制的关系,这只是供开发人员在IDE中组织他们的项目。我建议对另一个项目的完整url使用配置应用程序设置。