Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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
Asp.net core 在IdentityServer4中,如何安全地存储ReturnUrl?_Asp.net Core_Identityserver4 - Fatal编程技术网

Asp.net core 在IdentityServer4中,如何安全地存储ReturnUrl?

Asp.net core 在IdentityServer4中,如何安全地存储ReturnUrl?,asp.net-core,identityserver4,Asp.net Core,Identityserver4,我正在开发一个identity server 4 dotnet核心应用程序,因此这是一个dotnet问题,而不是IDS4问题。我需要在页面之间维护的状态(登录、注册等)的一个示例是returnUrl。我要从中迁移的应用程序用于将其存储在会话变量中,但据我所知,除非运行持久会话策略,否则无法很好地扩展 目前,我将它作为每个视图使用的每个视图模型中的一个字段传递,以便可以返回它。这是一个合理的方法吗?我还需要传递其他字段,所以我想知道这是否是一种安全且合乎逻辑的方法 目前,我将它作为每个视图使用的每

我正在开发一个identity server 4 dotnet核心应用程序,因此这是一个dotnet问题,而不是IDS4问题。我需要在页面之间维护的状态(登录、注册等)的一个示例是returnUrl。我要从中迁移的应用程序用于将其存储在会话变量中,但据我所知,除非运行持久会话策略,否则无法很好地扩展

目前,我将它作为每个视图使用的每个视图模型中的一个字段传递,以便可以返回它。这是一个合理的方法吗?我还需要传递其他字段,所以我想知道这是否是一种安全且合乎逻辑的方法

目前,我将它作为每个视图使用的每个视图模型中的一个字段传递,以便可以返回它。这是一个合理的方法吗

是的,你选择如何传递它取决于你,我选择同样的方法。您可以使用
TempData
、会话甚至本地存储作为替代方案。我认为在模型(视图模型)中使用它是一种很好的方法,因为您明确指定了返回url的存在位置,否则它可能会在您不希望的上下文中持久存在

现在是安全问题,因为很明显,您可以在浏览器地址字段中看到返回url

作为Identity Server 4设置的一部分,您可以指定允许重定向回的返回url,因此我认为让用户看到重定向url没有任何害处

要考虑的是,如果用户在认证过程的中间将URL与其他人共享,那么它们是否能够从初始用户停止的进程的那部分恢复?这是你想在你的应用程序中使用的东西吗


如果您的意思是可靠而不是安全,那么请编写测试,让您确信代码可以正常工作。

返回URL通常作为登录过程的一部分传递。你能告诉我你到底想做什么,以及默认行为是如何不适合你的吗?我们的登录过程包括注册链接和其他登录选项,如内部登录,所以我需要确保将returnURL也传递给这些页面。因此,问题在于用户可以以不同的方式在这些页面之间来回切换。请与我们分享您尝试过的内容以及失败的地方。什么是
内部登录
?您有任何关于注册或内部登录的重定向问题吗?感谢所有的输入。关于安全性,dotnetcoreauth使用一个nonce来防止重播,所以我认为这部分已经涵盖了。