簡體   English   中英

從 web.config 到 IIS 應用程序池標識

[英]from web.config to IIS Application Pool Identities

我是 IIS/ASP.Net 開發的新手,我的應用程序正在使用聲明到我的 web.config 的連接字符串。

現在我讀到/聽說我可以使用 IIS App Pool Identities 而不是 web.config。

這是我所做的:

  • 我已經從我的 web.config 中刪除了我的連接字符串
  • 設置我的應用程序池標識屬性 -> (Identity = ApplicationPoolIdentity)
  • 在“自定義”下的應用程序站點連接字符串中添加了我聲明的連接字符串,例如"Data Source=sql...blah;Initial Catalog=dbname;Integrated Security=False;Persist Security Info=False;User ID=MyDBUserName;Password=MyPassword;Connect Timeout=60;Encrypt=False;Current Language=English;"

據我所知它有效,但我的問題是,這真的是你配置它的方式嗎?

我的印象是您可以使用一些變量(用戶名、密碼、dbname..等),在您的 web.config 上聲明它並通過您的應用程序池身份將其綁定,但我找不到與此相關的任何文章。

謝謝你

您可以設置運行應用程序池的用戶。 所做的只是讓應用程序池認為用戶是登錄到服務器的某個特定用戶。

這往往不會影響您的數據庫代碼,因為您仍然需要告訴您的代碼使用哪個數據庫。 即使您的主機和網絡使用域 controller,並且您使用 windows 登錄來使用 sql 服務器。 無論如何,您的 .net 代碼將需要一些連接字符串來指定數據庫和服務器。 你已經在應用程序池標識下添加了該用戶(我假設是這個):

在此處輸入圖像描述

那么,現在“用戶”是您的文件和網絡權限。 因此,該用戶可以說僅限於某些文件夾集 - 可能是另一台具有大量文檔的服務器。

在“自定義”下的應用程序站點連接字符串中添加了我聲明的連接字符串

是的,這會將連接字符串放入 web.config - 如果您在執行上述操作后檢查 web 配置,您應該會在 web.config 中看到該字符串。

因此,理論上,在您的代碼中,您可以連接到數據庫服務器 - 並且您的應用程序池用戶將被使用,但您仍然有一個連接字符串 - 仍然需要定義什么數據庫,什么服務器等(並且在您的代碼中使用)。 我的意思是,假設具有 windows 身份驗證到 SQL 服務器的桌面不會讓您擺脫困境,因為在某個地方可以使用已定義的連接字符串。 雖然用戶可能在“定義的”應用程序池用戶的上下文中運行,但您仍然需要一些地方來存儲並最終使用一些連接字符串。 那么,定義后面的代碼將作為應用程序池中的哪個用戶運行的事實? 您仍然需要一個連接字符串,並且不會存儲您用於數據庫的連接字符串,也不會來自應用程序池設置。

暫無
暫無

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

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