当前位置: 首页 > 知识库问答 >
问题:

ASP.NET 5中的身份验证(vNext)

壤驷德寿
2023-03-14

我有一个传统的ASP.NET应用程序,我想把它移到ASP.NET5(vNext)。我这样做是为了学习。

共有1个答案

欧阳元魁
2023-03-14

microsoft.aspnet.authentication.oauth

  • 允许第三方标识符(例如,Google、Facebook)为您验证用户身份,省去了用户注册的麻烦。
  • 允许其他应用程序使用您的应用程序进行身份验证

一旦用户通过第三方的身份验证,OWIN中间件读取他们的OAuth cookie并创建一个特定于域的基于声明的cookie。只要cookie可用(存在、未过期和未损坏),用户就保持身份验证。

ASP.NET 5通用OAuth提供程序简介

Microsoft.aspnet.Authentication.OAuthBearer

创建承载令牌。当用户登录到endpoint(Web-API)或通过第三方的身份验证时,OWIN中间件返回一个承载令牌。承载令牌与所有服务请求一起发送,以代替cookie标识用户。

启动中

app.UseOAuthBearerAuthentication(options =>
{
    options.Authority = "http://localhost:5000/oauth/";
    options.Audience = "http://localhost:5000/oauth/resources";

    options.TokenValidationParameters = new TokenValidationParameters
    {
        IssuerSigningKeys = new[] { new X509SecurityKey(cert) },
        ValidateLifetime = false,
    };
    options.AutomaticAuthentication = true;

    options.SecurityTokenValidators = new[]
    {
        new JwtSecurityTokenHandler()
    };
});

在创建SPA(单页应用程序)或保护AJAX请求时使用承载令牌。

Cookie身份验证被认为适合服务器请求。但是服务endpoint(无论它们是否允许跨源资源共享)更容易受到CSRF和XSS攻击。

您需要区分使用cookie的资源和使用令牌的资源。

在这个Stackoverflow答案中,Matt DeKrey很好地概述了他的实现

[授权(“持票人”)]

如果您正在为数百万用户服务,或者保护重要的财务数据,那么您的异步调用应该依赖于承载令牌。

注意:您提到了使用表单身份验证,我强烈建议使用标识。该框架与OWIN集成为您提供了这两种类型的功能。

 类似资料:
  • 身份验证 PDF版下载 企业应用中的URL链接可以通过OAuth2.0验证接口来获取员工的身份信息。 通过此接口获取员工身份会有一定的时间开销。对于频繁获取员工身份的场景,建议采用如下方案: 企业应用中的URL链接直接填写企业自己的页面地址; 员工跳转到企业页面时,企业校验是否有代表员工身份的cookie,此cookie由企业生成; 如果没有获取到cookie,重定向到OAuth验证链接,获取员工

  • 问题内容: 如何在Elasticsearch中定义安全性访问?我有elasticsearch-head插件,但是您的访问不需要任何安全性。 问题答案: 不再积极支持此答案中提到的插件。 elasticsearch中没有内置的访问控制。因此,您需要设置一个反向代理(这是一个博客文章,介绍如何设置nginx),使用第三方的Elasticsearch插件之一,例如https://github.com/A

  • 我将尝试对 socket.io 上的连接进行身份验证。 目前,用户首先通过REST API进行身份验证,然后,我向用户发送一个,其中包含经过身份验证的用户的用户名。打开客户端和服务器之间的连接后,我的计划是从连接的套接字列表中临时删除该套接字,以防止在执行身份验证时在服务器之间接收和发送数据。 在这个身份验证中,我验证令牌,如果令牌有效,我将套接字的id重新添加到已连接套接字的列表中。唯一的问题是

  • 本文向大家介绍asp.net mvc中Forms身份验证身份验证流程,包括了asp.net mvc中Forms身份验证身份验证流程的使用技巧和注意事项,需要的朋友参考一下 验证流程 一、用户登录 1、验证表单:ModelState.IsValid 2、验证用户名和密码:通过查询数据库验证 3、如果用户名和密码正确,则在客户端保存Cookie以保存用户登录状态:SetAuthCookie     1

  • 问题内容: 我正在尝试创建一个J2ME应用程序,该应用程序使用连接器与Web服务器通信。 当我与WebServer交谈时,我必须使用基本HTTP身份验证进行身份验证,通常这种方式类似于 但是在J2ME中,当我构造这种形式的url时,它不起作用。 我也尝试添加请求属性, 但是没有用 有人以前做过基于j2me的HTTP身份验证吗?提前致谢。 问题答案: 可能是J2ME不支持基本身份验证,我可能错了。如

  • 我需要连接到LDAP服务器,但出现以下错误: javax。命名。AuthenticationException:[LDAP:错误代码49-80090308:LDAPPER:DSID-0C09034,注释:AcceptSecurityContext错误,数据525,向量 用户名和密码正确,我尝试设置相同的用户并传入另一个用编写的应用程序。NET,它在那里工作,但在Java中,我收到了错误消息。 我的