簡體   English   中英

服務器端的HTTP標頭

[英]HTTP Header on server side

我們已經建立了一個ASP WEB api。 認證由HMAC在Authorization標頭中完成。 在服務器端,我們檢查HMAC代碼,如果該代碼有效,則請求將繼續處理資源。 我們的項目結構由多層組成。

  1. -API-
  2. -商業邏輯-

在businessLogic中,我們有一個LINQ to SQL連接。 此連接字符串是動態的,位於API層中。 將連接字符串傳遞給businessLogic的最佳方法是什么? 我們想到了在連接字符串中添加額外的標頭的想法。 然后,通過System.Web.HttpContext.Current.Request.headers獲得特定的標頭。 這有效,但是安全嗎?

您應該對我更清楚一點,因為您的問題對我而言並不完全有意義。

“此連接字符串是動態的,位於API層中”

您是說將其存儲在Web API項目的web.config / app.config中的某個位置嗎?

“將連接字符串傳遞給businessLogic的最佳方法是什么?”

您是否要將其從Web API項目傳遞到“ businessLogic”項目的類? 我建議您從業務邏輯的appSettings中獲取它(將繼承您的Web Api項目之一)。

ConfigurationManager.ConnectionStrings["Your_Connection_String_Name_Here"]

我會將您的應用程序設置抽象到一個單獨的類(+接口)中,以便更輕松地模擬單元測試。

例如:

public interface IGetAppSettings
    {
        NameValueCollection GetAll { get; }
        string MyConnectionString { get; }
    }

public class MyAppSettings : IGetAppSettings
    {
        public NameValueCollection GetAll
        {
            get { return ConfigurationManager.AppSettings; }
        }

        public string MyConnectionString
        {
            get
            {
                var value = ConfigurationManager.ConnectionStrings["MyConnectionString"];
                return value.ToString();
            }
        } 
    }

暫無
暫無

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

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