返回頂部
關閉軟件導航
位置:首頁 > 資訊 > 其他>ASP策略到底是什么

ASPCMS批量助手   在 ASP.NET Core 中,基于策略的授權框架旨在分離授權與應用程序邏輯。簡而言之,策略是以一系列要求的形式設計的實體,這些要求本身就是當前用戶必須滿足的條件。

ASPCMS批量上傳內容   最簡單的策略是,對用戶進行身份驗證,同時還須滿足用戶與給定角色相關聯這一常見要求。另一常見要求是ASPCMS批量添加產品 ,用戶必須有特定聲明或包含某值的特定聲明。

  從最一般的意義上來講,要求就是斷言了嘗試訪問正確方法的用戶標識。策略對象是使用以下代碼進行創建:

  varpolicy = newAuthorizationPolicyBuilder() .AddAuthenticationSchemes("Cookie, Bearer") .RequireAuthenticatedUser() .RequireRole("Admin") .RequireClaim("editor", "contents") .RequireClaim("level", "senior") .Build();

  生成器對象使用各種擴展方法收集要求,再生成策略實例。可以看到,要求約束了身份驗證狀態和方案、角色以及通過身份驗證 Cookie 或持有者令牌讀取的任何聲明組合。

ASPCMS批量助手   如果預定義的所有擴展方法都不適用于定義要求,始終可以采取最后手段,即通過自己的斷言定義新要求。命令如下:

  varpolicy = newAuthorizationPolicyBuilder() .AddAuthenticationSchemes("Cookie, Bearer") .RequireAuthenticatedUser() .RequireRole("Admin") .RequireAssertion(ctx => { returnctx.User.HasClaim("editor", "contents") || ctx.User.HasClaim("level", "senior"); }) .Build();

  RequireAssertion 方法需要使用 lambda,以接收 HttpContext 對象,并返回布爾值。因此,斷言就是條件語句。

  請注意,如果多次連接 RequireRole,用戶必須履行所有角色。若要改為表達 OR 條件,可能需要將斷言用作最后手段。

  在此示例中,策略實際上允許角色為內容編輯者或高級用戶的用戶。

  注冊策略

  光定義策略還不夠,還必須向授權中間件注冊策略。為此,請在 Startup 類的 ConfigureServices 方法中,將授權中間件添加為服務,如下所示:

  services.AddAuthorization(options=>{ options.AddPolicy("ContentsEditor", policy => { policy.AddAuthenticationSchemes("Cookie, Bearer"); policy.RequireAuthenticatedUser(); policy.RequireRole("Admin"); policy.RequireClaim("editor", "contents"); });}

  添加到中間件的每個策略都有一個名稱,用于在 Controller 類的 Authorize 屬性中引用策略:

  [Authorize(Policy = "ContentsEditor")]publicIActionResult Save(Article article){ // ...}

  使用 Authorize 屬性ASPCMS批量添加欄目 ,可以聲明的方式設置策略,但也可以通過操作方法以編程方式調用策略,如圖 2所示。

  圖 2:以編程方式檢查策略

  publicclassAdminController : Controller{ privateIAuthorizationService _authorization; publicAdminController(IAuthorizationService authorizationService) { _authorization = authorizationService; } publicasyncTask { returnctx.User.HasClaim("editor", "contents") || ctx.User.HasClaim("level", "senior"); }) .Build();

  RequireAssertion 方法需要使用 lambda,以接收 HttpContext 對象,并返回布爾值。因此,斷言就是條件語句。

  請注意,如果多次連接 RequireRole,用戶必須履行所有角色。若要改為表達 OR 條件,可能需要將斷言用作最后手段。

如果您覺得 ASP策略到底是什么 這篇文章對您有用,請分享給您的好友,謝謝
文章地址:http://www.meyanliao.com/article/other/ASPclddssm.html
解放雙手無盡可能,有問題添加天線貓微信
主站蜘蛛池模板: 无码人妻久久久一区二区三区| 精品国产aⅴ无码一区二区| 日韩亚洲AV无码一区二区不卡| 日日麻批免费40分钟无码| 精品深夜AV无码一区二区| WWW久久无码天堂MV| 亚洲国产精品无码久久久不卡| 亚洲熟妇av午夜无码不卡| 亚洲综合无码AV一区二区| 亚洲精品无码aⅴ中文字幕蜜桃| 八戒理论片午影院无码爱恋| 人妻丰满av无码中文字幕| 亚洲AV无码一区二区三区在线观看| 亚洲精品无码Av人在线观看国产| 日韩毛片无码永久免费看| 无码精品黑人一区二区三区 | 亚洲综合无码无在线观看| 亚洲成?v人片天堂网无码| 亚洲AV无码XXX麻豆艾秋| 高潮潮喷奶水飞溅视频无码| 成人免费无码大片A毛片抽搐色欲 成人免费无码大片a毛片 | 色窝窝无码一区二区三区| 亚洲欧洲无码AV电影在线观看| 无码中文人妻在线一区二区三区 | 久久久久无码精品国产app| 无码乱人伦一区二区亚洲一| 中文字幕AV中文字无码亚| 夜夜添无码试看一区二区三区| 国产免费久久久久久无码| 免费A级毛片无码久久版 | 精品无码人妻一区二区三区18| 精品无码一区在线观看| 久久亚洲AV成人出白浆无码国产| 国产成人无码综合亚洲日韩| 夜夜添无码一区二区三区| 久久久久无码精品亚洲日韩| 无码人妻一区二区三区免费看| 亚洲av无码国产精品色午夜字幕| 亚洲AV永久无码精品| 亚洲国产精品无码中文字| 人妻丝袜中文无码av影音先锋专区|