ASP.NET Core--按計劃身份限制

來源:互聯網
上載者:User

標籤:

翻譯如下: 

  在某些情況下,比如單頁的應用程式,可以與多種認證來方式結合。例如,您的應用程式可能使用基於Cookie的身分識別驗證來登入和JavaScript的請求承載認證。在某些情況下,可能一個授權驗證的中介軟體有多個的執行個體。兩個Cookie中介軟體,其中一個包含了基本驗證,而另外一個當多個條件的認證被觸發由於這個使用者請求的操作需要額外的安全要求。

  認證方案會被定義當認證的中介軟體已經配置認證的過程。例如:

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屬性。 此屬性接收要使用的驗證方案的逗號分隔列表。 例如;

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

  在上面的樣本中,Cookie和Bearer中介軟體將運行,並且有機會為目前使用者建立和附加身份。 通過指定單個方案,只有指定的中介軟體將運行;

[Authorize(ActiveAuthenticationSchemes = "Bearer")]

  在這種情況下,只有具有Bearer方案的中介軟體將運行,並且任何基於Cookie的身份將被忽略。

 

在策略中選擇方案

  如果您希望在策略中指定所需的方案,則可以在添加策略時設定“身分識別驗證方案”集合。

options.AddPolicy("Over18", policy =>{    policy.AuthenticationSchemes.Add("Bearer");    policy.RequireAuthenticatedUser();    policy.Requirements.Add(new Over18Requirement());});

  在此樣本中,Over18這個策略將僅對由Bearer中介軟體建立的身份運行。 

ASP.NET Core--按計劃身份限制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.