ASP.Net Core MVC RedirectToAction 在 returnUrl 前面附加控制器名称

2023-12-13

我正在开发 ASP.Net core、MVC 6 应用程序。我有一个 AppControler 作为我的初始控制器,如果用户尝试转到具有 [Authorize] 属性的操作,我会重定向到我的 AuthController 进行登录,并传入 returnUrl 进行返回。经过身份验证后,我使用... return RedirectToAction(returnUrl)。

在调试中,我可以看到 returnUrl 字符串设置为 /App/Timesheets。但是,在浏览器地址栏中,它的地址为http://localhost:49940/Auth/%2FApp%2FTimeSheets。由于某种原因,它在 returnUrl 前面附加了控制器名称 (Auth)。

这是我在 AuthController 中的登录操作

    [HttpPost]
    public async Task<ActionResult> Login(LoginViewModel vm, string returnUrl)
    {
        if (ModelState.IsValid)
        {
            var signInResult = await _signInManager.PasswordSignInAsync(vm.Username, vm.Password, true, false);

            if (signInResult.Succeeded)
            {
                if (string.IsNullOrWhiteSpace(returnUrl))
                {
                    return RedirectToAction("Timesheets", "App");
                }
                else
                {
                    return RedirectToAction(returnUrl);
                }
            }
            else
            {
                ModelState.AddModelError("", "Username or password incorrect");
            }
        }

        return View();
    }

我可以手动输入http://localhost:49940/应用程序/时间表在浏览器地址栏中输入并转到正确的视图。另外,如果我添加

returnUrl = String.Empty;  //Test Only

行前...

if (string.IsNullOrWhiteSpace(returnUrl))

使其执行该行...

return RedirectToAction("Timesheets", "App");

重定向效果很好。所以这与传入字符串变量有关"/Controller/Action"格式就是问题所在。

有任何想法吗?


当你已经有了完整的 URL 时,你应该返回一个Redirect。目前你正在做一个RedirectToAction它将尝试重定向到当前控制器(Auth)下的操作。

if (signInResult.Succeeded)
{
   if (string.IsNullOrWhiteSpace(returnUrl))
   {
      return RedirectToAction("Timesheets", "App");
   }
   else
   {
      return Redirect(returnUrl);
   }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.Net Core MVC RedirectToAction 在 returnUrl 前面附加控制器名称 的相关文章

  • C# 打印问题(RichTextBox)

    我想打印我的 RichTextBox eintragRichTextBox 的内容 我现在有这个代码 private void druckenPictureBox Click object sender EventArgs e PrintD
  • 添加 Nullable int 时保持 null?

    我想添加可为空的int 并保留null当所有值都是null 我想要这个结果 1 2 3 1 null 1 null null null O null 0 问题是 如果我将一个值与 null 相加 结果为 null int i1 1 int
  • 将 new 与 decltype 一起使用

    T t T is an implementation detail t new T want to avoid naming T to allow for flexibility t new decltype t error cannot
  • Poco c++Net:Http 从响应中获取标头

    我使用 POCO C Net 库进行 http 我想尝试制定持久缓存策略 首先 我认为我需要从缓存标头中获取过期时间 并与缓存值进行交叉检查 如果我错了 请告诉我 那么我如何从中提取缓存头httpResponse 我已经看到你可以用 Jav
  • 在 OnModelCreating 期间设置列名称

    Issue 我目前正在尝试通过设置的属性为我的表及其列添加前缀 我正在使用实体框架核心 我已经正确地为表名添加了前缀 但我似乎无法弄清楚列的前缀 我有一种感觉 我需要使用反射 我已经留下了我的 可能很糟糕的 反思尝试 有人有办法在实体中设置
  • 删除是如何工作的? [复制]

    这个问题在这里已经有答案了 可能的重复 C 编程 free 如何知道要释放多少 https stackoverflow com questions 1518711 c programming how does free know how m
  • 检测wlan是否关闭

    任何人都可以给我一个提示 如何在 Windows Phone 上以编程方式检测 C 8 1 应用程序 不是 8 0 是否启用 禁用 WLAN 我不想更改这些设置 只是需要知道 该解决方案是一个 Windows 8 1 通用应用程序 Wind
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • 如何制作可启动程序?

    所以 这个问题可能看起来很奇怪 但假设我编译了 int main void int x 3 int y 4 int z x y 是否可以让CPU这样运行 如何 例如 这允许我写入监视器吗 如果我没记错的话 内存中有些地方可以写入要显示的内容
  • 访问 ascx 文件中的母版页控件

    我有一个母版页文件 其中包含 2 个面板控件中的 2 个菜单 我还使用控件来检查用户是否登录并获取用户类型 根据我想要显示 隐藏面板的类型 控件本身不在母版页中引用 而是通过 CMS 系统动态引用 我想在用户控件中使用findcontrol
  • 增强精神、递归和堆栈溢出

    为什么下面的代码在运行时崩溃 它会给出堆栈溢出错误 include
  • MFC:如何设置CEdit框的焦点?

    我正在开发我的第一个简单的 MFC 项目 但我正在努力解决一个问题 想要设置所有的焦点CEdit其中一个对话框中的框 我的想法是 当打开对话框时 焦点位于第一个编辑框上 然后使用 选项卡 在它们之间交换 我看到了方法SetFocus 但我无
  • Project Euler #8,我不明白我哪里出了问题[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在做项目欧拉第八题 https projecteuler net problem 8 其中我得到了这个大得离谱的数字 7316
  • 使用 GCC 生成可读的程序集?

    我想知道如何使用GCC http en wikipedia org wiki GNU Compiler Collection在我的 C 源文件中转储机器代码的助记符版本 这样我就可以看到我的代码被编译成什么 你可以使用 Java 来做到这一
  • ASP.NET MVC 路由:如何从 URL 中省略“索引”

    我有一个名为 StuffController 的控制器 具有无参数索引操作 我希望从表单中的 URL 调用此操作mysite com stuff 我的控制器定义为 public class StuffController BaseContr
  • C++ 中 void(*)() 和 void(&)() 之间的区别[重复]

    这个问题在这里已经有答案了 在此示例代码中 func1是类型void int double and funky是类型void int double include
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您
  • DataContractSerializer 事件/委托字段问题

    在我的 WPF 应用程序中 我正在使用DataContractSerializer序列化对象 我发现它无法序列化具有事件或委托声明的类型 考虑以下失败的代码 Serializable public abstract class BaseCl
  • 如何使用placement new重新初始化该字段?

    我的课程包含字段 private OrderUpdate curOrderUpdate 我一遍又一遍地使用它 经常需要重新初始化 for int i 0 i lt entries size i auto entry entries i ne
  • 结构化绑定的用例有哪些?

    C 17 标准引入了新的结构化绑定 http en cppreference com w cpp language structured binding功能 最初是proposed http www open std org jtc1 sc

随机推荐

  • 带有条件表达式的 WPF 数据绑定

    我正在使用 MVVM 模式 并且我的视图的数据上下文有一个属性 Customer 现在我想根据 Customer CustomerID 属性的值绑定文本框的 IsEnabled 属性 如果它大于 0 则应启用它 否则应禁用它 我知道我可以轻
  • 如何获取 WPF TreeView 的所有元素作为列表?

    我需要以普通列表的形式访问 TreeView 的节点 就好像所有节点都展开一样 以便能够按 Shift 键进行多重选择 有办法做到这一点吗 Thanks 下面的方法将检索 TreeView 中的所有 TreeViewItems 请注意 这是
  • 为什么@ContributesAndroidInjector不提供Android框架类型

    我已经简化了我的应用程序以找到问题的根源 这是简化的版本 我正在使用以下配置实现 Dagger 2 应用组件 Component modules AndroidSupportInjectionModule class ActivityBin
  • 从 Windows 到 Unix 的 Eclipse CDT .cproject 文件

    我有一个遗留的内部工具 可以使用我用来运行 Simulink 仿真的所有 C 文件创建 Eclipse CDT 项目 我使用 eclipse 项目作为 GDB 的前端 在 Windows 中使用 Cygwin 通过模拟 C 代码进行调试 该
  • 如何在没有java utils的情况下比较两个字符串数组

    检查数组 arr1 是否包含与 java 中 arr2 相同顺序的元素 例如 isTheSame 1 2 3 1 2 3 true isTheSame 1 2 3 2 1 1 false isTheSame 1 2 3 3 1 2 fals
  • 登录后如何重定向?

    我已将用户名和密码绑定到后备托管 bean 在支持 bean 中 当我使用数据库检查用户名和密码时 我想将页面重定向到login xhtml to home xhtml 我怎样才能做到这一点 只需返回附加的视图 IDfaces redire
  • MySQL根据年份自动递增

    我正在创建一个票务系统 这是我的表结构 CREATE TABLE tix sip tktNum INT UNSIGNED NOT NULL sipNum INT UNSIGNED AUTO INCREMENT PRIMARY KEY sip
  • NSManagedObjectModel 版本标识符

    NSManagedObjectModel versionIdentifiers 的文档说 Core Data 框架不为模型提供默认标识符 也不在运行时依赖该值 对于在 Xcode 中创建的模型 您可以在模型检查器中设置此值 我不确定 但我认
  • 即使在 Xamarin 中安装 android v4 支持库后也会出错

    即使从 Xamarin 组件商店安装 v4 支持库后 我也会收到此错误 我尝试用谷歌搜索这些问题 但在开发 Android 应用程序时 我总是在 Xamarin Studio 中遇到相同的错误 This is Xamarin 错误 3249
  • 同时写入 XML 文件

    我有多个进程在不同的机器上运行 需要读取 写入共享的 XML 文件 为此我正在使用DOM with Java and FileLocks 虽然我知道数据库将是一种更有效的方法 但由于项目限制 这是不可行的 为了更改 XML 文件 相关进程首
  • 邻近搜索 谷歌地图

    我正在使用谷歌地图 v3 捕获名为 Locations 的 MS SQL 数据库表中的所有地址 该表将包含 LocationName LocationAddress LocationZip LocationState LocationCit
  • django 形式的多个图像与多重上传

    我需要将 django 形式的多个图像添加到一个模型中 我做了一项研究 对于 django 之外的表单 我尝试设置Django 多重上传 我的模型 py class Profile models Model first models Ima
  • 将数据帧模式加载到元数据表

    用例是读取文件并在其上创建数据框 之后获取该文件的架构并将其存储到数据库表中 例如 我只是创建一个案例类并获取 printschema 但是我无法从中创建数据框 这是示例代码 case class Employee Name String
  • ORA-01027: 尝试使用 if elseif 时不允许绑定变量进行数据定义

    我收到 ORA 01027 数据定义不允许绑定变量 procedure create dates testing dummy variable varchar2 default to char sysdate YYYYMMDD is beg
  • 在 ME49 中打开供应商的报价?

    我想打开编号为 的供应商的报价 175315 在 ME49 事务中 将光标定位在其编号上 在行3 并双击或按键盘上的 F2 键 当我检查 的技术信息175315 or 138992 表明EKKO LIFNR作为屏幕字段 LIFNR作为字段名
  • KERAS 中的自身损失函数

    我如何定义自己的损失函数 它需要 Keras 中先前层的权重和偏差参数 如何从每一层获取 W1 b1 W2 b2 Wout bout 在这里 我们需要传递比平常更多的变量 y true y pred 我附上了两张图片供您参考 我需要实现这个
  • 在GIT中“隐藏”东西

    这里是 Git 菜鸟 我知道这违反了 分布式源代码控制 的原则 但我想 密码保护 我的 GIT 存储库中的某些开发分支 也就是说 我不希望通过以下方式使用该分支git branch r 除了需要通过某种密码访问该分支的特定开发人员组 可能的
  • 如何创建半椭圆形(弯曲一条线)

    我正在尝试为我的形状创建一个自定义形状NavigationView页脚 作为背景 但不是那么干净 这就是我所做的 这就是我需要的 Code
  • iOS 类似 Web UI [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我见过几个有趣的移动设备网页 UI 看起来像 iOS 设备 无法弄清楚 我怎样才能实现类似的外观和感觉 导航栏 滚动 缩放 全屏 甚至在之后立即显示新页面 单击工具栏中的选项卡之一
  • ASP.Net Core MVC RedirectToAction 在 returnUrl 前面附加控制器名称

    我正在开发 ASP Net core MVC 6 应用程序 我有一个 AppControler 作为我的初始控制器 如果用户尝试转到具有 Authorize 属性的操作 我会重定向到我的 AuthController 进行登录 并传入 re