gpt4 book ai didi

c# - OWIN 在 IIS 7 中作为 Web 应用程序托管(OWIN Startup 未在虚拟目录中调用)

转载 作者:行者123 更新时间:2023-11-30 16:09:30 29 4
gpt4 key购买 nike

我在 IIS 7.5 中部署了一个 Owin 中间件身份验证项目作为 Web 应用程序但问题是 Startup.cs 没有被调用。

[assembly: OwinStartup(typeof(Authorization.Startup))]

namespace Authorization
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
//Logger.Write(string.Format("Authorizations->frist Configuration "), LoggingCategoryNames.PRESENTATION_LAYER_LOGGING_CATEGORY);
ConfigureAuth(app);
}
}
}

这段代码没有被执行。当我们将其部署为根级网站时,一切正常。

那么我们哪里出了问题,可以做些什么来让它发挥作用。我们不能将我们的身份验证项目部署为单独的网站,它只能是一个网络应用程序。

谢谢

最佳答案

我发现了类似的东西。我的 Configuration 方法正在运行,但是当作为子 Web 应用程序托管时,身份验证中间件(在本例中为 OpenIdConnect)似乎没有在 Owin 管道中执行。作为根网站托管时,它运行良好。

在更深入地调试管道本身之前,我尝试了一些我发现在使用其他 token 服务(例如 ADFS)时会导致问题的事情。果然它就是其中之一。

旧的尾部斜线问题。

我之前在客户端应用程序中的 OpenIdConnect 配置看起来像这样

app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
Authority = "https://idserver/identity",
ClientId = "Client",
RedirectUri = "https://clients/mvcclientapp"
...
});

而且客户端不会处理传入的 token 。中间件似乎根本没有在管道内执行。

我在 RedirectUrl 的末尾添加了一个额外的“/”,它开始工作了。

app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
Authority = "https://idserver/identity",
ClientId = "Client",
RedirectUri = "https://clients/mvcclientapp/"
...
});

当作为根网站托管在 IIS 中时,这不是必需的。

关于c# - OWIN 在 IIS 7 中作为 Web 应用程序托管(OWIN Startup 未在虚拟目录中调用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27497548/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com