首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Asp.net核心mvc中实现登录后重定向到上次访问页面

在ASP.NET Core MVC中实现登录后重定向到上次访问页面,可以通过以下步骤实现:

  1. 在登录页面的表单中,添加一个隐藏字段,用于存储上次访问的页面URL。例如,可以在登录表单中添加一个隐藏字段 <input type="hidden" name="returnUrl" value="@Context.Request.Path" />
  2. 在登录的POST方法中,获取该隐藏字段的值,并将其存储在returnUrl变量中。
  3. 在用户成功登录后,使用returnUrl变量进行重定向。可以使用returnUrl变量作为参数传递给Redirect方法,例如:return Redirect(returnUrl);

以下是一个示例代码:

代码语言:txt
复制
[HttpPost]
public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null)
{
    if (ModelState.IsValid)
    {
        // 验证用户登录逻辑

        // 如果验证成功
        if (result.Succeeded)
        {
            // 重定向到上次访问的页面
            if (!string.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl))
            {
                return Redirect(returnUrl);
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }
        else
        {
            ModelState.AddModelError(string.Empty, "登录失败,请检查用户名和密码。");
        }
    }

    // 如果验证失败或发生其他错误,返回登录页面
    return View(model);
}

这样,当用户登录成功后,系统将会重定向到上次访问的页面。

请注意,以上代码只是一个示例,实际应用中需要根据具体的业务逻辑进行调整。另外,关于ASP.NET Core MVC的更多信息和相关产品,可以参考腾讯云的官方文档和产品介绍页面。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET Core 应用中使用 Cookie 进行身份认证

2.1、前期准备 假定现在已经存在了一个 ASP.NET Core MVC 应用,这里以 VS 创建的默认项目为例,对于一个 MVC or Web API 应用,要求用户必须登录之后才能进行访问,最简单的方式...,在定义授权策略时,我们定义了三个重定向页面,去告诉 Cookie 授权策略这里对应的页面在何处,同时,因为身份验证 Cookie 的默认过期时间会持续关闭浏览器为止,也就是说,只要用户不点击退出按钮并且不关闭浏览器...; }); } } 此时,当我们再次访问系统时,因为没有经过认证,自动触发了重定向系统登录页面的操作,而这里重定向跳转的页面就是上文代码配置的 LoginPath 的属性值...2.3、登录、登出实现 当认证策略配置完成之后,就可以基于选择的策略来进行登录功能的实现。这里的登录页面上的按钮,模拟了一个登录表单提交,当点击之后会触发系统的认证逻辑,实现代码如下所示。...、ClaimsIdentity 和 ClaimsPrincipal,通过对于这三个对象的使用,从而实现将用户登录成功系统所需的用户信息包含在 Cookie 三个对象之间的区别,借用理解ASP.NET

1.3K40

用最简单的方式在ASP.NET Core应用实现认证、登录和注销

ASP.NET Core提供了多种认证方式,它们的实现都基于相同的认证模型。本篇文章提供了一个极简的实例让读者体验如何在ASP.NET Core应用实现认证、登录和注销。...一旦拥有了由认证方颁发的认证票据,我们就可以按照双方协商的方式(通过Cookie或者报头)在请求携带该认证票据,并以此票据声明的身份执行目标操作或者访问目标资源。...接下来我们就通过一个简单的实例来演示如何在一个ASP.NET Core应用实现认证、登录和注销的功能。...应用的主页需要登录之后才能访问,所以针对主页的匿名请求会被重定向登录页面。在登录页面输入正确的用户名和密码之后,应用会自动重定向应用主页,该页面会显示当前认证用户名并提供注销的链接。...如下面的代码片段所示,我们定义在Program的SignOutAsync扩展方法正是调用这个方法来注销当前登录状态的。我们在完成注销之后将应用重定向主页。

3.4K30

ASP.NET Core 6框架揭秘实例演示:使用最简洁的代码实现登录、认证和注销

(本文提供的示例演示已经同步ASP.NET Core 6框架揭秘-实例演示版》) 一、 认证票据 要真正理解认证、登录和注销这三个核心操作的本质,就需要对ASP.NET采用的基于“票据”的认证机制有基本的了解...按照惯例,在介绍认证模型的架构设计之前,需要通过一个简单的实例来演示如何在一个ASP.NET应用实现认证、登录和注销的功能。...这个应该会呈现两个页面,认证用户访问主页会呈现一个“欢迎”页面,匿名请求则会重定向登录页面,我们将这两个页面的呈现实现在如下这个IPageRenderer服务,PageRenderer类型为该接口的默认实现...主页需要在登录之后才能访问,所以针对主页的匿名请求会被重定向登录页面。在登录页面输入正确的用户名和密码之后,应用会自动重定向主页,该页面会显示当前认证用户名并提供注销的链接。...基于Cookie的认证方案会自动将匿名请求重定向登录页面,由于我们指定的登录和注销路径是Cookie的认证方案约定的路径,所以调用ChallengeAsync方法时根本不需要指定重定向路径。

20430

ASP.NET Core 使用最简洁的代码实现登录、认证和注销

一、 认证票据 要真正理解认证、登录和注销这三个核心操作的本质,就需要对ASP.NET采用的基于"票据"的认证机制有基本的了解。...按照惯例,在介绍认证模型的架构设计之前,需要通过一个简单的实例来演示如何在一个ASP.NET应用实现认证、登录和注销的功能。...这个应该会呈现两个页面,认证用户访问主页会呈现一个"欢迎"页面,匿名请求则会重定向登录页面,我们将这两个页面的呈现实现在如下这个IPageRenderer服务,PageRenderer类型为该接口的默认实现...主页需要在登录之后才能访问,所以针对主页的匿名请求会被重定向登录页面。 在登录页面输入正确的用户名和密码之后,应用会自动重定向主页,该页面会显示当前认证用户名并提供注销的链接。...基于Cookie的认证方案会自动将匿名请求重定向登录页面,由于我们指定的登录和注销路径是Cookie的认证方案约定的路径,所以调用ChallengeAsync方法时根本不需要指定重定向路径。

28130

IdentityServer4学习及简单使用

通常你可以构建(或重新使用)包含登录和注销页面的应用程序,IdentityServer中间件会向其添加必要的协议头,以便客户端应用程序可以使用这些标准协议与其对话。 ?...身份验证服务:官方认证的OpenID Connect实现 单点登录/注销(SSO) 访问受控的API : 为不同的客户提供访问API的令牌,比如:MVC网站、SPA、Mobile APP等 ...等等...Privacy,会报错 而我们希望的效果是:当用户第一次点击Privacy,页面重定向验证服务(IdentityServerDemo),当用户登录验证授权,再重定向该网站。...此后一定时间范围内的第二次,第三次点击,都不需要再重定向验证服务,而是直接读取保存的token. 3....RedirectUris是指登录成功以后需要重定向的地址(即重定向MvcClient的地址), 而PostLogoutRedirectUris是指登出之后需要重定向的地址。

1.4K20

C#进阶-ASP.NET常用控件总结

本文介绍了ASP.NET控件编程的基础知识和常用技巧。通过对基础控件TextBox、DropDownList等的介绍,读者可以了解如何在ASP.NET应用中使用这些控件来实现用户界面的交互。...Login控件提供了简单的用户认证功能,用户可以输入用户名和密码登录系统,登录成功重定向指定的欢迎页面。...在后台代码,通过Page_Load事件检查用户是否已经登录,如果已经登录,则直接重定向欢迎页面。...在后台代码,通过Page_Load事件检查用户是否已经登录,如果已经登录,则直接重定向欢迎页面。...CreateUserWizard1_ContinueButtonClick事件处理程序用于处理用户点击继续按钮的逻辑,您可以在这里执行一些额外的操作或者重定向其他页面。3.

7510

IdentityServer(12)- 使用 ASP.NET Core Identity

这个快速入门使用ASP.NET Core Identity的方法是从Visual StudioASP.NET Core Identity模板创建一个新项目。...将之前快速入门的配置类(在Config.cs)复制到此新项目中。 对于现在的配置需要改变的是禁用MVC客户端的许可。...并在注册页面上创建一个新的用户帐户: ? 现在你有一个用户帐户,你应该可以登录,使用客户端,并调用API。 在MVC客户端登录 启动MVC客户端应用程序,你应该能够点击“Secure”链接登录。 ?...您应该被重定向ASP.NET Identity登录页面。 用新创建的用户登录: ? 登录,您应该跳过同意页面(给出我们上面所做的更改),并立即重定向MVC客户端应用程序,会显示你的用户信息。...现在,您已经从ASP.NET Ientity的用户登录

1.7K30

ASP.NET Core 程序制作 URL 的 301302 跳转

本文描述如何在 ASP.NET Core 中进行重定向。 ---- HTTP 状态码 301/302 301 表示“Moved Permanently”,即永久移动。...如果我们将此 URL 重定向不带后缀的 URL,则可以被 Blazor 框架识别并正确显示对应的博客页面。...我们有两个不同的方式来实现这种 URL 的重定向: 做一个重定向的控制器 Controller,然后在控制器重定向所有的博客页面 做一个重定向的中间件,对所有包含 .html 后缀的博客页面重定向没有...重定向 如果你希望做其他种类的跳转,你也可以添加新的中间件,比如: 将 HTTP 重定向 HTTPS(谷歌建议使用 301 跳转) 你可以在打开某个网页之前要求登录,于是做一个 302 跳转到登录页面...小心缓存 请注意,301 重定向会被浏览器缓存。也就是说如果你重定向到了一个错误的网址,那么再次访问的话浏览器将直接访问这个错误的网址。如果希望浏览器停止重定向这个错误的网址,需要清除浏览器的缓存。

3.8K10

当.Net撞上BI可视化,这3种“套路”你必须知道

在浏览器打开 http://localhost:51980/graphiql 网页(注意URL末尾的graph与ql之间有一个字母i),可随时调试API,如下图: 接下来我们再来演示如何在ASP.NET...ASP .Net Core MVC 项目集成BI数据可视化 安装Wyn,使用 localhost:51980进入门户管理网站。...打开 Visual Studio 新建ASP.NET MVC项目 或者已有的项目中添加新的视图或HTML文件 其他 在上面我们介绍了在ASP .Net Core MVC 项目和.Net Core 项目中的集成方式...集成的权限管理 BI仪表板因为涉及企业核心业务数据信息,因此用户权限是关键的功能,因此对于用户权限管理也需要有不同方案进行处理,我们以大家最熟悉的安全令牌来举例: 使用固定令牌集成时,相当于以一个固定的用户身份查看报表内容...单点登录集成 如果业务系统有更高的安全性要求,可在业务系统登录画面,通过登录API,以实现单点登录集成,并将获取的令牌放在会话变量

3K20

BI仪表板数据可视化大屏

URL集成 在.Net Core项目中使用最多的集成方式是URL集成,这种集成方式的核心是设置一个带参数(QueryString)的网址(URL),作为业务系统某个菜单链接的目标地址,或者是作为业务系统页面某个...ASP.NET Core MVC 项目中实现数据可视化功能。...ASP .Net Core MVC 项目集成BI数据可视化 安装Wyn,使用 localhost:51980进入门户管理网站。...集成的权限管理 BI仪表板因为涉及企业核心业务数据信息,因此用户权限是关键的功能,因此对于用户权限管理也需要有不同方案进行处理,我们以大家最熟悉的安全令牌来举例: 使用固定令牌集成时,相当于以一个固定的用户身份查看报表内容...单点登录集成 如果业务系统有更高的安全性要求,可在业务系统登录画面,通过登录API,以实现单点登录集成,并将获取的令牌放在会话变量

8.2K10

拦截器的骚操作

第一种:通过实现HandlerInterceptor接口,或继承HandlerInterceptor接口的实现类(HandlerInterceptorAdapter)来定义。...应用案例 案例说明 : 实现用户登录权限验证 “案例,只有登录的用户才能访问系统的主页面,如果没有登录系统而直接访问页面,则拦截器会将请求拦截,并转发到登录页面,同时在登录页面给出提示信息。...如果用户名或密码错误,也会在登录页面给出相应的提示信息。当已登录的用户在系统主页单击“退出”链接时,系统同样会回到登录页面。...// 将用户对象添加到Session session.setAttribute("USER_SESSION", user); // 重定向页面的跳转方法...String logout(HttpSession session) { // 清除Session session.invalidate(); // 重定向登录页面的跳转方法

54750

ASP.NET Core MVC如何使用Session实现身份验证

Session对象用于存储从一个用户开始访问某个特定的aspx的页面起,用户离开为止,特定的用户会话所需要的信息。用户在应用程序的页面切换时,Session对象的变量不会被清除。...但有时候,我们希望在不同的页面之间共享信息,比如购物车、用户登录等,于是,ASP.NET为我们提供了一个服务端的Session机制。...三、ASP.NET Core MVC使用Session方式来实现用户身份验证 这篇文章主要为大家详细介绍了ASP.NET Core MVC使用Session验证用户登录的相关资料,具有一定的参考价值,...实现核心原理和具体实现步骤: 1)、客户端发送身份认证数据服务器端服务器收到并验证将用户信息保存到Session对象, 2)、然后生成对应的标识并将标识写入cookie当客户端下次请求时带上该...2)、添加BaseAdminController控制器,重写OnActionExecuting方法,每次访问控制器前触发。 ? 3)、登录成功实现对用户信息存储Session ?

3.4K30

ASP.NET Core 程序制作 URL 的 301302 跳转

如果你有一些需要重定向网页 URL 的情况,可以返回 HTTP 状态码 301/302 告诉浏览器或者搜索引擎访问新的 URL。本文描述如何在 ASP.NET Core 中进行重定向。...如果我们将此 URL 重定向不带后缀的 URL,则可以被 Blazor 框架识别并正确显示对应的博客页面。...我们有两个不同的方式来实现这种 URL 的重定向: 做一个重定向的控制器 Controller,然后在控制器重定向所有的博客页面 做一个重定向的中间件,对所有包含 .html 后缀的博客页面重定向没有...重定向 如果你希望做其他种类的跳转,你也可以添加新的中间件,比如: 将 HTTP 重定向 HTTPS(谷歌建议使用 301 跳转) 你可以在打开某个网页之前要求登录,于是做一个 302 跳转到登录页面...小心缓存 请注意,301 重定向会被浏览器缓存。也就是说如果你重定向到了一个错误的网址,那么再次访问的话浏览器将直接访问这个错误的网址。如果希望浏览器停止重定向这个错误的网址,需要清除浏览器的缓存。

15810

ASP.NET Core 1.1 简介

响应缓存中间件会作为ASP.NET MVCOutputCacheAttribute的继任者。...Razor视图编译 在ASP.NET MVC之前的版本,有一种预编译Web站点的方式,这样的话,视图编译就可以在部署阶段执行,而不是在运行期。通过这种方式,能够减少部署后首次加载页面所造成的延迟。...这样的话,就允许我们在应用启动的时候从Key Vault secrets获取配置,并将其放在内存之中,从而能够使用正常的ASP.NET Core配置抽象来访问配置数据。...这允许您从应用程序启动时从密钥保险库秘密检索配置并将其保存在内存,使用普通的ASP.NET Core配置抽象来访问配置数据。...对于默认的认证流,这通常只是意味着用户被重定向再次登录。 但是,对于使用Data Protections Protect方法手动加密的任何内容,您将无法完全解密数据。

2.4K60

基于Spring的简易SSO设计

,则将请求重定向sso 站点的login页面;此外,它还用于接收SSO登录成功返回的token标识 1.2 SSO App 即SSO的主站点,提供统一的登录认证,并将认证的token返回给Client...直接重定向sso的login页面,并在returnURL参数,将请求页面传递给sso 3.1 登录成功,生成一个token字符串,然后将token-user info的映射关系,存入token server...3.2 同时重定向Client Website登录前的页面,并在url附加一个token参数 3.2.1 Client Website收到返回的token url参数,写入Cookie 3.2.2...,能重定向用户需要访问页面) 3 sso收到请求的tokentoken server验证真伪(带上当前请求页面地址,做为returnUrl附带在url参数) 4 token server返回验证结果...,如果没有,则弹出登录窗口,将用户名、密码参数,发送到sso进行认证(相当于重定向sso的login页面认证),认证成功,将服务端返回的token写入本地xml(相当于sso client filter

1.4K60

【One by One系列】IdentityServer4(四)授权码流程

Code Flow),这种方式主要场景: 保密客户端,服务器端的web应用 “例如asp.net core mvc,这种由后端处理逻辑,模板渲染的web框架 ” 另外,这种方式主要是需要先去IdentityServer...这种方式广泛用于大厂的开放平台,微信、华为等等。 这种方式的安全性最高,因为它是server-server,即web应用的后端与IdentityServer交互通信,token都是存储在后端。...code=AUTHORIZATION_CODE “重定向至redirect_uri,且会在uri增加授权码 ” 3.后端请求oauth/token?...\IdentityServer\ dotnet run 用vs启动MVCClient 首先页面进入MVCClient起始页http://localhost:6002 由于没有登录,将会跳转至登录页http...://localhost:5001/Account/Login 键入正确的用户名和密码,又会重定向至http://localhost:6002 测试访问api就不演示效果了,只给出相关代码: controller

1.8K20
领券