Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET Core重定向到同一解决方案下另一个项目中的控制器_C#_Asp.net Mvc_Asp.net Core_.net Core_Asp.net Core Mvc - Fatal编程技术网

C# .NET Core重定向到同一解决方案下另一个项目中的控制器

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

是否可以在不使用绝对url的情况下重定向到.NET Core中同一解决方案中的另一个项目

我问这个问题是因为我看到很多web应用程序都有billing.website.com,它只提供计费功能,而app.website.com拥有大部分应用程序

我已经找到了,但不清楚用户cookie是否超时,我应该在哪里以及如何将用户重定向到

如果我有一个项目将在url account.website.com下处理身份验证,我应该如何在我的Startup.cs中设置它

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使用配置应用程序设置。