
ASP.NET
文章平均质量分 67
还是叫明
这个作者很懒,什么都没留下…
展开
-
ASP.NET Core Web API用户身份验证
ASP.NET Core Web API用户身份验证的方法有很多,本文只介绍JWT方法。JWT实现了服务端无状态,在分布式服务、会话一致性、单点登录等方面凸显优势,不占用服务端资源。简单来说,JWT的验证过程如下所示:(1)通过用户名和密码获取一个Token。(2)访问API时,加上这个Token。Token包含过期时间、用户角色等信息,可以在多种场合灵活使用。原创 2023-05-07 10:28:01 · 5239 阅读 · 5 评论 -
ASP.NET Core后台运行(Windows Service)方法
我们知道,ASP.NET Core网站开发完成以后,运行的时候会出现一个控制台窗口,如下图所示:一方面,这个窗口不太雅观,而且容易被用户不小心关闭;另一方面,系统重启之后,服务不会随系统一起启动。为了解决上面的问题,可以把ASP.NET Core应用包装成Windows Service,具体方法如下:1、开发好ASP.NET Core应用。(本文介绍的是基于.NET 5)2、在项目中添加包Microsoft.Extensions.Hosting.WindowsServices。3、.原创 2021-09-23 15:42:03 · 3905 阅读 · 0 评论 -
ASP.NET Core API标准项目开发流程
一、基本准则1.1HTTP方法使用以下HTTP方法:方法名称 主作用 次作用 GET 获取资源 增删改查以外的动作,内容在URL中 POST 创建资源 增删改查以外的动作,内容在BODY中 PUT 更新资源 DELETE 删除资源 1.2RESTURI设计准则1、使用名词的复数表示一个资源集合,如:www.example.com/users2、使用斜线“/”表示资源之间的层次关系,如www.ex...原创 2020-12-24 09:43:16 · 1782 阅读 · 0 评论 -
ASP.NET Core实现OpenID Connect用户认证、授权
在前面的文章中,我们讲述了ASP.NET实现OAuth2.0的四种模式。那在.NET Core中怎么实现呢?如果使用前面的方法,你会发现是行不通的,.NET Core的架构已经改变了。在讲述认证之前,我们需要先了解一个新的协议:OpenID Connect。它基于OAuth2.0协议,增加了OpenID这个概念,使用起来会更加简便。本文不对这个协议展开分析,有兴趣的读者请参阅其他资料。在ASP.NET Core中,我们使用IdentityServer4这个开源库实现用户认证和授权的功能。一、实现用户原创 2020-09-04 14:36:48 · 3449 阅读 · 0 评论 -
详解.NET实现OAuth2.0四种模式(6)RefreshToken
我们知道,为了安全起见,AccessToken的有效时间一般是比较短的(如30分钟)。在AccessToken超出有效期之后,它就不能再用于访问资源,必须重新获得。但如果每30分钟,就要让用户登录一次,那必定会让用户感到厌烦。于是就产生了RefreshToken这个概念。在获得AccessToken的同时,得到RefreshToken。在AccessToken过期之后,不需要请求用户重新输入账号,直接用RefreshToken获得新的AccessToken。下面,我们在授权码模式下,加入Refres原创 2020-07-20 16:05:27 · 1406 阅读 · 0 评论 -
详解.NET实现OAuth2.0四种模式(5)简化模式
简化模式又称为隐式授权码模式,它是授权码模式的一个简化版本。具体来说,在简化模式中,授权服务器不返回授权码,而直接返回AccessToken。这种模式一般用在无法安全保存AppSecret等信息的应用中,如HTML/JS应用(所有代码都在明文中)。授权码原先设计的目的是验证应用是合法的,但既然应用没办法证明自己,就没有必要多一步请求了。我们直接来看简化模式的实现。Startup类跟授权码模式是一致的,我们不再赘述。...原创 2020-07-20 15:26:31 · 1219 阅读 · 0 评论 -
详解.NET实现OAuth2.0四种模式(4)授权码模式
一、授权码模式认证流程授权码模式是最为安全,同时也最为复杂的一种模式。其认证流程如下图所示:可能有的人会问,为什么要多出授权码这个东西呢,没有它不行吗?(我自己一开始也有这个疑问)确实是不行,我们来看一下。我们拿“同城交友”APP微信登录这个例子来解释。首先,用户名、密码就是我们的微信号和密码,我们是不能交给“同城交友”这个APP的。所以,我们在微信官方的登录页上完成了微信号和密码的输入(当然,也可能是手机扫一扫)。完成之后,我们能不能直接把AccessToken交给APP去访问资源呢?还不原创 2020-07-20 14:50:27 · 2275 阅读 · 4 评论 -
详解.NET实现OAuth2.0四种模式(3)客户端模式
一、客户端模式的认证流程客户端模式也是一种比较简单的模式,其跟密码模式类似,只是不用用户名和密码去认证,而使用AppID、AppSecret认证。在客户端模式下,认证的主体是应用,而非用户。二、客户端模式的实现客户端模式的实现过程跟密码模式基本是一致的,相同的部分不再赘述,所以还没了解密码模式的读者请先阅读上一章。我们在上一章中,创建了一个简单的Controller作为资源示例,创建了一个Startup类,作为网站入口。这些内容在客户端模式下都是完全相同的。唯一有区别的是Authoriz原创 2020-07-20 10:16:18 · 1200 阅读 · 0 评论 -
详解.NET实现OAuth2.0四种模式(2)密码模式
一、密码模式的认证流程密码模式是比较简单的一种模式,其认证流程如下图所示:二、受限资源设计OAuth2.0设计的目的是限制某些资源的访问,用户必须认证通过之后才能访问。我们在项目中加入一个简单的Controller,作为资源示例。右击项目,添加一个Web API控制器类(v2.1),如下图所示:我们把这个类命名为ValuesController,在这个类中只添加一个函数:public IHttpActionResult Get(){ return Ok(new s原创 2020-07-20 09:06:43 · 2846 阅读 · 0 评论 -
详解.NET实现OAuth2.0四种模式(1)
一、OAuth2.0的角色在OAuth2.0协议中,有4个角色,分别是:用户:访问受限制资源的用户。应用:第三方应用,可能是手机App、Web应用或者桌面程序。授权服务器:负责用户授权、颁发令牌、管理应用等。资源服务器:存放受限制资源。授权服务器和资源服务可以是同一个服务器。举个例子,我们在“同城交友”这款应用中,需要微信登录并使用微信头像,那么,用户就是我们,应用是“同城交友”,授权服务器就是微信登录授权的服务器,而资源服务器存放了我们微信的头像。二、一般流程使用O原创 2020-07-17 19:54:09 · 3565 阅读 · 1 评论