簡體   English   中英

處理身份驗證/授權:ASP.NET Core Web 應用程序 => ASP.NET Core Web API => SQL

[英]Handling authentication/authorization: ASP.NET Core Web Application => ASP.NET Core Web API => SQL

我目前正在嘗試找出處理使用 ASP.NET Core 的新外部 Web 應用程序和 Web 服務應用程序的身份驗證的最佳方法。 這是一般設置:

  1. 用戶名/密碼存儲在 SQL Server 數據庫中
  2. Web 應用程序僅調用 Web 服務
  3. Web 服務 (Web API) 調用數據庫並將數據返回到 Web 應用程序

所以這個想法是用戶登錄一次並使用內置的 cookie 身份驗證提供程序將保持登錄狀態。 但是,我想將該身份驗證令牌或其他任何內容傳遞給 Web 服務應用程序,並使其在適當的安全性下運行該用戶的上下文。 我已經尋找了類似於這種設計的例子,但沒有找到一個好的例子。 任何人都可以提出任何高級建議或向我指出一些有關如何實現此設計的有用資源嗎?

以asp.net core MVC和web api為例,將登錄頁面放在web應用中。 將 cookie 身份驗證放在 web api 中。 用戶登錄后,通過web api申請token,token會保存在瀏覽器的cookie緩存中。 這是cookie配置。 在 Startup.cs (web api) 中。

services.AddAuthentication("scheme")
            .AddCookie("scheme", options =>
            {
                options.Cookie.Name = "authname";
                
            });

如果令牌申請成功,它將寫入瀏覽器。

在此處輸入圖片說明

然后我添加一個獲取 cookie 令牌的操作。

    [Route("getTocken")]
    public string getTocken( )
    {
        string cookie =""; 
        HttpContext.Request.Cookies.TryGetValue("authname", out 
        cookie);
        
        return cookie;
    }

這是結果。

在此處輸入圖片說明

這個 cookie 令牌可以保存在會話中以保持狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM