okta - asp.net 网络表单 - 如何防止未经授权的用户导航到安全网页?
okta - asp.net web forms - how do I prevent an unauthorized user from navigating to a secure web page?
我正在尝试将 okta 添加到一个非常旧的 ASP.Net Web Forms 应用程序。
我正在关注这个演示:https://developer.okta.com/blog/2018/08/29/secure-webforms-with-openidconnect-okta
然后我将更改集成到我的解决方案中。
但是,现在我想保护特定网页。我不希望任何人在没有经过身份验证的情况下能够导航到特定页面。如果他们确实尝试导航到安全页面,我希望将他们发送到 okta 进行登录。
我添加了下面的代码,它与上面演示中的代码类似。它似乎有效。
if (!HttpContext.Current.Request.IsAuthenticated)
{
HttpContext.Current.GetOwinContext().Authentication.Challenge(
new AuthenticationProperties { RedirectUri = "/" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
return;
}
但是,我不想将此代码添加到每个页面。
过去,当我将 okta 集成到 ASP.NET MVC 应用程序中时,我会向控制器添加 [Authenticate] 属性。那会给我想要的效果。
关于如何获得 ASP.Net Web Forms 应用程序所需结果的任何建议?
一个不理想的选项是将代码放在我的母版页中。问题是我有几个母版页,所以我将不得不复制代码。
我知道 Web Forms 可以使用 Forms Authentication。然后使用以下配置强制用户进入登录页面。
<authentication mode="Forms">
<forms loginUrl="~/Login.aspx" />
</authentication>
但是,我没有使用表单身份验证。我正在使用 okta。
最后,我在考虑使用自定义 HttpModule / Handler。但是,当我尝试这样做时,自定义模块在 Startup.cs 之前运行。 Startup.cs 包含初始化 okta 和 owin 上下文的代码。结果,当自定义模块运行时,GetOwinContext 失败。
如有任何建议,我们将不胜感激。
@derekmckinnon 在与我公司有 okta 和 web 表单经验的开发人员讨论这个问题后,我们基本上决定做同样的事情。感谢您确认此决定。
我正在尝试将 okta 添加到一个非常旧的 ASP.Net Web Forms 应用程序。
我正在关注这个演示:https://developer.okta.com/blog/2018/08/29/secure-webforms-with-openidconnect-okta
然后我将更改集成到我的解决方案中。
但是,现在我想保护特定网页。我不希望任何人在没有经过身份验证的情况下能够导航到特定页面。如果他们确实尝试导航到安全页面,我希望将他们发送到 okta 进行登录。
我添加了下面的代码,它与上面演示中的代码类似。它似乎有效。
if (!HttpContext.Current.Request.IsAuthenticated)
{
HttpContext.Current.GetOwinContext().Authentication.Challenge(
new AuthenticationProperties { RedirectUri = "/" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
return;
}
但是,我不想将此代码添加到每个页面。
过去,当我将 okta 集成到 ASP.NET MVC 应用程序中时,我会向控制器添加 [Authenticate] 属性。那会给我想要的效果。
关于如何获得 ASP.Net Web Forms 应用程序所需结果的任何建议?
一个不理想的选项是将代码放在我的母版页中。问题是我有几个母版页,所以我将不得不复制代码。
我知道 Web Forms 可以使用 Forms Authentication。然后使用以下配置强制用户进入登录页面。
<authentication mode="Forms">
<forms loginUrl="~/Login.aspx" />
</authentication>
但是,我没有使用表单身份验证。我正在使用 okta。
最后,我在考虑使用自定义 HttpModule / Handler。但是,当我尝试这样做时,自定义模块在 Startup.cs 之前运行。 Startup.cs 包含初始化 okta 和 owin 上下文的代码。结果,当自定义模块运行时,GetOwinContext 失败。
如有任何建议,我们将不胜感激。
@derekmckinnon 在与我公司有 okta 和 web 表单经验的开发人员讨论这个问题后,我们基本上决定做同样的事情。感谢您确认此决定。