zoukankan      html  css  js  c++  java
  • [转]ASP.NET Core--根据方案来限制身份

    本文转自:http://www.cnblogs.com/duyao/p/5980105.html

    翻译如下: 

      在某些情况下,比如单页的应用程序,可以与多种认证来方式结合。例如,您的应用程序可能使用基于Cookie的身份验证来登录和JavaScript的请求承载认证。在某些情况下,可能一个授权验证的中间件有多个的实例。两个Cookie中间件,其中一个包含了基本验证,而另外一个当多个条件的认证被触发由于这个用户请求的操作需要额外的安全要求。

      认证方案会被定义当认证的中间件已经配置认证的过程。例如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    app.UseCookieAuthentication(new CookieAuthenticationOptions()
    {
        AuthenticationScheme = "Cookie",
        LoginPath = new PathString("/Account/Unauthorized/"),
        AccessDeniedPath = new PathString("/Account/Forbidden/"),
        AutomaticAuthenticate = false
    });
     
    app.UseBearerAuthentication(options =>
    {
        options.AuthenticationScheme = "Bearer";
        options.AutomaticAuthenticate = false;
    });

      在如上的配置中,添加了两个认证中间件,一个是Cookie,一个是Bearer。

    注意:

      添加多个身份验证中间件时,应确保没有将中间件配置为自动运行。 可以通过将AutomaticAuthenticate选项属性设置为false来执行此操作。 如果你没有加这一点,按方案将不起作用。 

    使用Authorize Attribute选择方案

      由于我们没有将身份验证中间件配置为自动运行并创建身份,因此在授权时必须选择要使用的中间件。 选择要授权的中间件的最简单方法是使用ActiveAuthenticationSchemes属性。 此属性接收要使用的验证方案的逗号分隔列表。 例如;

    1
    2
    [Authorize(ActiveAuthenticationSchemes = "Cookie,Bearer")]
     public class MixedController : Controller

      在上面的示例中,Cookie和Bearer中间件将运行,并且有机会为当前用户创建和附加身份。 通过指定单个方案,只有指定的中间件将运行;

    1
    [Authorize(ActiveAuthenticationSchemes = "Bearer")]

      在这种情况下,只有具有Bearer方案的中间件将运行,并且任何基于Cookie的身份将被忽略。

    在策略中选择方案

      如果您希望在策略中指定所需的方案,则可以在添加策略时设置“身份验证方案”集合。

    1
    2
    3
    4
    5
    6
    options.AddPolicy("Over18", policy =>
    {
        policy.AuthenticationSchemes.Add("Bearer");
        policy.RequireAuthenticatedUser();
        policy.Requirements.Add(new Over18Requirement());
    });

      在此示例中,Over18这个策略将仅对由Bearer中间件创建的身份运行。 

  • 相关阅读:
    react 常用组件整理
    react 问题记录二(侧重于state或者说server层操作)
    web前端常用小函数汇总
    vue 路由跳转四种方式 (带参数) 【转藏】
    微信小程序实用组件:省市区三级联动
    vue table组件显示一个图片

    520
    微信小程序,子页面调用父页面的函数和方法
    webstorm 右侧滚动条怎么设置颜色
  • 原文地址:https://www.cnblogs.com/freeliver54/p/6259518.html
Copyright © 2011-2022 走看看