繁体   English   中英

.NET 核心重定向到 Controller 在同一解决方案下的另一个项目中

[英].NET Core Redirect to Controller in another Project under same Solution

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

我之所以问,是因为我看到这么多 web 应用程序具有仅提供计费功能的 billing.website.com 和拥有大部分应用程序的 app.website.com。

我发现如何在 ASP.NET Core MVC 2.0 的另一个程序集中使用 controller? 但尚不清楚用户 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM