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

在ASP Net Core 3.1中,使用ajax时,cookie不会重定向到登录页面

在ASP.Net Core 3.1中,使用ajax时,如果cookie不会重定向到登录页面,可能是因为未正确处理身份验证和授权。

首先,确保在Startup.cs文件的ConfigureServices方法中配置了身份验证和授权服务。可以使用AddAuthentication和AddAuthorization方法来添加相应的服务。

代码语言:txt
复制
public void ConfigureServices(IServiceCollection services)
{
    // 添加身份验证服务
    services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
        .AddCookie(options =>
        {
            options.LoginPath = "/Account/Login"; // 设置登录页面路径
            options.AccessDeniedPath = "/Account/AccessDenied"; // 设置访问被拒绝页面路径
        });

    // 添加授权服务
    services.AddAuthorization();

    // 其他服务配置...
}

接下来,在Configure方法中启用身份验证和授权中间件。确保在UseRouting之后、UseAuthentication之前调用UseAuthorization方法。

代码语言:txt
复制
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // 其他中间件配置...

    app.UseRouting();

    app.UseAuthentication();
    app.UseAuthorization();

    // 其他中间件配置...
}

然后,在需要进行身份验证的Controller或Action上添加[Authorize]特性,以确保只有经过身份验证的用户才能访问。

代码语言:txt
复制
[Authorize]
public class HomeController : Controller
{
    // ...
}

最后,在ajax请求中,确保设置了xhrFields属性的withCredentials为true,以便在请求中包含cookie。

代码语言:txt
复制
$.ajax({
    url: '/api/some-endpoint',
    type: 'GET',
    xhrFields: {
        withCredentials: true
    },
    success: function(response) {
        // 处理响应
    },
    error: function(xhr, status, error) {
        // 处理错误
    }
});

这样,当使用ajax请求时,如果用户未经过身份验证或cookie已过期,会自动重定向到登录页面。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,建议参考腾讯云的身份验证和授权相关文档,以了解他们提供的解决方案和产品。

参考链接:

  • ASP.NET Core 身份验证:https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/?view=aspnetcore-3.1
  • ASP.NET Core 授权:https://docs.microsoft.com/zh-cn/aspnet/core/security/authorization/?view=aspnetcore-3.1
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

温故知新 .Net重定向深度分析

由于页面地址浏览器中不会更改,因此用户有可能会感觉异样。...“http”或“https”的地址 ASP.NET MVC以至于.NET Core均淡化了服务端重定向的操作,可采用MVC Controller/Action替代 合理选择重定向方式 以上核心差异, 某些情况下需要合理选择重定向方式...307 “临时重定向”   指示所请求的资源已被临时移动到Location标头提供的URL; 307和302之间的唯一区别是307保证发出重定向请求,Method和Body不会更改,当重定向地址是非...Core因浏览器内核版本引发的单点登录故障 ● MongoDB副本集自动故障转移原理(含客户端) ● HTTP Strict Transport Security (HSTS) in ASP.NET...Core ● 2020年了,再不会Https就老了 ● 全网最深刻的ASP.NET Core跨平台技术内幕

1.4K20

IdentityServer Topics(4)- 登录

Cookie认证 使用来自ASP.NET Corecookie身份验证处理程序管理的cookie跟踪身份验证。...当使用来自ASP.NET Core的AddAuthentication,IdentityServer使用与AuthenticationOptions上配置的DefaultAuthenticateScheme...我们有使用ASP.NET Identity的示例。 登录工作流程 当IdentityServer授权端点收到请求,且用户没有通过认证,用户将被重定向配置的登录页面。...将会传递一个returnUrl参数,通知你的登录页面,一旦登录完成,用户应该被重定向到哪里。 ? 注意通过returnUrl参数的开放重定向攻击。...发出一个cookie和身份单元 ASP.NET Core的HttpContext上有与身份验证相关的扩展方法来发布身份验证cookie并签署用户。

1.3K30

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

本篇文章提供了一个极简的实例让读者体验如何在ASP.NET Core应用中实现认证、登录和注销。...本篇文章节选自《ASP.NET Core 3框架揭秘》(下册),针对本书的限时5折优惠截至今天24,有兴趣的朋友可以通过加入读者群进行购买。...二、基于Cookie的认证 我们会采用ASP.NET Core提供的基于Cookie的认证方案。顾名思义,该认证方案采用Cookie来携带认证票据。...应用的主页需要登录之后才能访问,所以针对主页的匿名请求会被重定向登录页面登录页面输入正确的用户名和密码之后,应用会自动重定向应用主页,该页面会显示当前认证用户名并提供注销的链接。...前面提及,注册的登录和注销路径是基于Cookie的认证方案采用的默认路径,所以调用ChallengeAsync方法根本不需要指定重定向路径。下图所示就是作为应用的主页浏览器上呈现的效果。 ?

3.4K30

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

ASP.NET Core利用AuthenticationMiddleware中间件完成针对请求的认证,并提供了用于登录、注销以及“质询”的API,本篇文章利用它们使用最简单的代码实现这些功能。...(本文提供的示例演示已经同步ASP.NET Core 6框架揭秘-实例演示版》) 一、 认证票据 要真正理解认证、登录和注销这三个核心操作的本质,就需要对ASP.NET采用的基于“票据”的认证机制有基本的了解...主页需要在登录之后才能访问,所以针对主页的匿名请求会被重定向登录页面登录页面输入正确的用户名和密码之后,应用会自动重定向主页,该页面会显示当前认证用户名并提供注销的链接。...基于Cookie的认证方案会自动将匿名请求重定向登录页面,由于我们指定的登录和注销路径是Cookie的认证方案约定的路径,所以调用ChallengeAsync方法根本不需要指定重定向路径。...如下面的代码片段所示,SignOutAsync扩展方法正是调用这个方法来注销当前登录状态的。我们完成注销之后将应用重定向主页。

22430

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

,我们定义了三个重定向页面,去告诉 Cookie 授权策略这里对应的页面何处,同时,因为身份验证 Cookie 的默认过期时间会持续关闭浏览器为止,也就是说,只要用户不点击退出按钮并且不关闭浏览器...; }); } } 此时,当我们再次访问系统,因为没有经过认证,自动触发了重定向系统登录页面的操作,而这里重定向跳转的页面就是上文代码中配置的 LoginPath 的属性值...、ClaimsIdentity 和 ClaimsPrincipal,通过对于这三个对象的使用,从而实现将用户登录成功后系统所需的用户信息包含在 Cookie 中 三个对象之间的区别,借用理解ASP.NET...Core What does the CookieAuthenticationOptions.LogoutPath property do in ASP.NET Core 2.1?...ASP.NET Core

1.3K40

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

ASP.NET Core利用AuthenticationMiddleware中间件完成针对请求的认证,并提供了用于登录、注销以及"质询"的API,本篇文章利用它们使用最简单的代码实现这些功能。...这个应该会呈现两个页面,认证用户访问主页会呈现一个"欢迎"页面,匿名请求则会重定向登录页面,我们将这两个页面的呈现实现在如下这个IPageRenderer服务中,PageRenderer类型为该接口的默认实现...主页需要在登录之后才能访问,所以针对主页的匿名请求会被重定向登录页面登录页面输入正确的用户名和密码之后,应用会自动重定向主页,该页面会显示当前认证用户名并提供注销的链接。...基于Cookie的认证方案会自动将匿名请求重定向登录页面,由于我们指定的登录和注销路径是Cookie的认证方案约定的路径,所以调用ChallengeAsync方法根本不需要指定重定向路径。...如下面的代码片段所示,SignOutAsync扩展方法正是调用这个方法来注销当前登录状态的。我们完成注销之后将应用重定向主页。

32730

SpringBoot 笔记

Core 中的 Action 注解 类比 ASP.NET Core template 为路由规则,比如 \{:name}\{:id} TODO: ASP.NET Core路由规则中参数有没有 : 不确定...Core 默认找视图顺序不同 ASP.NET Core return View("login"); 应当首先去匹配当前Controller 对应文件夹下 login.cshtml 默认第一个视图引擎的工作...: 重新发起一次请求 AJAX 请求登录后,响应 Set-Cookie ,但浏览器仍然没有设置 Cookie 参考: 为什么浏览器AJAX请求返回后不会设置Cookie?...- IT屋-程序员软件开发技术分享社区 我使用$ .ajax进行ajax请求。响应具有 Set-Cookie 标头集(我已在Chrome开发工具中验证了此标签)。...但是,浏览器收到响应后不会设置Cookie!当我导航到我的域中的另一个网页,不发送Cookie。 (注意:我没有做任何跨域的ajax请求;请求与文档同一个域中。)

1.8K10

临近年关,修复ASP.NET Core因浏览器内核版本引发的单点登录故障

循环重定向? 显示单点登录从website1?ticket =XXOO重定向回首页website1.com,确实发生了循环重定向,搜狗浏览器有重定向次数限制,最终返回浏览器定制的404 页面。...em4uf0faD1c4pbt*********k5Z0vN4uPOoEBWfGIP6l-x-gridsumdissector; path=/; samesite=none; httponly 故障关键单点登录最后一步重定向...Core2.0版本开始支持SameSite(IETF 2016草案),ASP.NET Core默认将Cookie SameSite设为Lax, 遇到身份验证问题后,大多数SameSite使用被禁用...标记为Secure, None是一个新值 ASP.NET Core 3.1SameSite枚举值新增Unspecified,表示不写入SameSite属性值,继承浏览器默认的Cookie策略 预定于2020...view=aspnetcore-2.1 [2] https://devblogs.microsoft.com/aspnet/upcoming-samesite-cookie-changes-in-asp-net-and-asp-net-core

1.8K10

Asp.net_Study学习笔记

aspx中可以使用的方式页面的当前位置输出表达式(表达式至少要用protected级别,后面会讲为什么,如果自动提示出不来,则重新生成项目)或者局部变量,表达式也可以是一个方法、属性...前端通过Ajax请求后台数据,刷新局部页面。...Asp.net other serverpush 因为HTTP协议的特性,使用HTTP协议传输的浏览器和服务器之间只能先由浏览器端先发起请求,服务器只能被动接受请求。响应浏览器的请求。然后关闭连接。...视频的案例中,服务器的代码中对每次读取数据的请求进行while无限循环,直至读取到所需的数据,同时使用sleep来减轻服务求压力,这样不会立即响应请求并关闭连接。...过期的时候才会调用Session_End) Application_BeginRequest:当一个请求过来的时候html等静态文件是iis直接把文件给浏览器,不经过asp.net引擎的处理。

21410

ASP.NET Core 基础知识】--安全性--防范常见攻击

注入页面:当其他用户访问包含恶意脚本的页面,服务器将恶意脚本发送给用户的浏览器,并且浏览器渲染页面执行了这些恶意脚本。...执行恶意操作:恶意脚本在用户的浏览器上执行,可以窃取用户的 Cookie、会话信息、个人数据,劫持用户的会话,篡改页面内容,甚至重定向其他恶意网站等,从而危害用户隐私和安全。...2.2 ASP.NET Core中的CSRF防御机制 ASP.NET Core中,可以使用Antiforgery中间件和Antiforgery特性来防御跨站请求伪造(CSRF)攻击。...); // 登录成功后重定向首页或其他页面 return RedirectToAction("Index", "Home"); } 通过以上步骤,你可以ASP.NET Core中实现基本的身份验证和授权机制...当用户访问需要授权的资源,系统会自动检查用户是否通过了身份验证,并且是否具有足够的授权。如果用户未经身份验证或者没有足够的授权,则系统会自动重定向登录页面或者拒绝访问。

6900

C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService(二)

攻击者通过诱导用户访问恶意网站,使用登录的情况下执行一些敏感操作,如更改密码、发起转账等。攻击原理:用户已登录了一个网站A,该网站在用户的浏览器中设置了 Cookie。...避免 CSRF 攻击的方法:1)使用 Anti-CSRF Token在用户登录生成一个唯一的令牌,并将其嵌入用户的会话中。在用户执行敏感操作,确保请求中包含该令牌,并验证令牌的有效性。...ASP 页面的代码嵌入 HTML 中,并在服务器上执行。ASP.NETASP.NET 使用面向对象的编程模型,支持多种语言(如 C#、VB.NET)。...5、ViewState概念: ViewState 是 ASP.NET 页面用于客户端保持页面状态的机制,以便在 postback 恢复页面上的控件状态。...它的目的是允许页面 PostBack(例如,按钮点击后的页面重新加载)保留控件的状态,以便它们可以正确地还原之前的状态。

15510

一个适合.NET Core的代码安全分析工具 - Security Code Scan

以前做内部系统往往不会很在意安全问题,现在经历了这么一波后印象深刻了。...2.2 SCS的使用   为了演示SCS的使用,这里我们使用一个SCS官方文档中准备好的一个故意留有安全问题的ASP.NET 项目(不是ASP.NET Core)叫做WebGoat.NET来初步使用一下...换句话说,cookiehttps的情况下创建的,而且他的Secure=true,那么之后你一直用https访问其他的页面(比如登录之后点击其他子页面),cookie会被发送到服务器,你无需重新登录就可以跳转到其他页面...对于CSRF攻击,ASP.NET Core使用 ASP.NET Core data protection stack 来实现防请求伪造。...实现上主要是header里加了Content-Security-Policy的安全策略,ASP.NET Core中的代码参考如柳随风的这篇《ASP.NET Core2中使用CSP内容安全策略》。

1.3K20

IdentityServer Topics(5)- 使用第三方登录

ASP.NET Core有一个灵活的方式来处理外部认证。 这包括几个步骤。 如果您使用的是ASP.NET Identity,则许多底层技术细节对您而言都是隐藏的。..."; }) 登录方案指定将暂时存储外部认证的结果的cookie处理程序的名称,例如 由外部提供商发送的身份单元。 这是必要的,因为完成外部认证过程之前,通常会有几个重定向。...returnUrl)) { return Redirect(returnUrl); } return Redirect("~/"); 状态,URL长度和ISecureDataFormat 当重定向到外部提供商登录...ASP.NET Core提供的OpenID Connect身份验证处理程序利用了该协议的这一功能,这就是它如何实现上述的returnUrl功能。...要使用IdentityServer提供的安全数据格式实现,只需配置DIIServiceCollection上调用AddOidcStateDataFormatterCache扩展方法即可。

2.9K30

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

Session对象用于存储从一个用户开始访问某个特定的aspx的页面起,用户离开为止,特定的用户会话所需要的信息。用户应用程序的页面切换,Session对象的变量不会被清除。...ASP.NET页面是"无状态"的,这意味着每次向服务器发送一个请求,服务器都会生成一个该页面的实例。...但有时候,我们希望不同的页面之间共享信息,比如购物车、用户登录等,于是,ASP.NET为我们提供了一个服务端的Session机制。...三、ASP.NET Core MVC使用Session方式来实现用户身份验证 这篇文章主要为大家详细介绍了ASP.NET Core MVC使用Session验证用户登录的相关资料,具有一定的参考价值,...1)、 Asp.Net Core中Session中间件的使用 我们需要在用户登录以后记录当前登录用户的会话状态,ASP.NET Core 已经内置发布了一个关于会话的程序包(Microsoft.Extensions.DependencyInjection

3.6K30

.NET开发工程师的常见面试题

{tabs-pane label="ASP.NET"} ASP.NET页面之间传递值的几种方式? QueryString(查询字符串):通过URL中的查询字符串(Default.aspx?...Server.Transfer:服务器端重定向服务器内部将请求从A页面重定向B页面。...由于重定向是发生在浏览器端,因此浏览器的地址栏会变成重定向后的URL。浏览器端重定向可以跨站点。 ASP.NET中的身份验证有那些?...Forms验证:ASP.NET通过Web表单,为每个用户创建一个用cookie保存的身份验证票据,通过该票据验证用户身份。...ASP.NET缓存有几种实现方式? 页面输出缓存:将页面全部进行缓存。 页面局部缓存:将页面中的一部分放在用户控件中,对该部分进行缓存。 数据缓存:使用Cache类进行数据缓存。

5.4K30

ASP.NET Core 实战:将 .NET Core 2.0 项目升级 .NET Core 2.1

在上一篇的博客中(ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路),试着将我之前写的 ASP.NET Core 2.0 的项目部署 Linux 服务器上,采用的是微软官方推荐的...在上一篇的文章中,我们 Linux 服务器上构建我们的 .NET Core 运行环境,安装的是最新版本的 .NET Core Runtime,而部署的程序 .NET Core 版本则是 .NET Core...3、基于 ASP.NET Core 2.1 代码惯例的更改    .NET Core 升级 2.1 版本后,ASP.NET Core 相应的也进行了一些更新,我们创建的模板中的一些基础代码也进行了修改...同样的, Startup.cs 文件中,ASP.NET Core 2.1 版本增加了对于 GDPR 的支持(欧盟的一项政策,当我们需要收集用户的数据,必须以「简洁、透明且易懂的形式,清晰和平白的语言...四、总结    从 .NET Core 2.0 升级 .NET Core 2.1的整个过程来看,项目整体改动不多,发布项目,我们可以发现,发布后的项目的大小缩小了很多,同时还提供了对于独立部署的支持

1.2K20

C#基础知识复习

 Forms验证:ASP.NET通过Web表单,为每个用户创建一个用cookie保存的身份验证票据,通过该票据验证用户身份。... Server.Transfer:服务器端重定向服务器内部将请求从A页面重定向B页面。...由于重定向是发生在浏览器端,因此浏览器的地址栏会变成重定向后的URL。浏览器端重定向可以跨站点。 ASP.NET页面之间传递值的几种方式?... Code-Behind:代码隐藏技术(代码后置),ASP.NET中aspx页面通过其页面指令@Page,将页面的处理逻辑代码分离另一个cs文件中,从而将页面的显示逻辑和处理逻辑分离,提高了页面的可维护性... .ajax:可以使用指定的方式来发送请求。.ajax方法是jquery中发送Ajax请求的最底层方法,可以完全自定义发送请求的相关参数。

6.1K10

asp.net Forms身份验证详解

对于初学者,通常将用户登录信息存放在Session中,笔者刚接触到asp.net的时候就是这么做的。...当我将用户信息存在在Session中,常常会遇到Session丢失导致用户无法正常访问被授权的资源,保持用户登录状态的安全性问题,无休止的将用户导航登录页面等莫名其妙的问题。   ...其实,asp.net中,我们有更好的解决方案,那就是通过Forms身份验证,从而对用户进行授权,这种方法可以轻松的保持用户的登录状态(如果用户想这样),便捷的用户授权配置,增强的安全性等好处。...第一步,web.config中添加配置信息,说明网站要使用Forms身份验证,并指定登录页面和默认登录成功后的跳转页面,然后指定拒绝未登录用户的访问,代码如下: <authentication...loginUrl:指定如果找不到任何有效的身份验证 Cookie,将请求重定向的用于登录的 URL。默认值为 login.aspx。

2K10
领券