⑴ ASP.NET創建WEB應用程序不能對其進行調試
如果iis是後來安裝的,需要首先。net在命令工具中執行aspnet_regiis -i,安裝asp。netframework
然後檢查下邊的配置:
如果iis不是後安裝的,直接檢查下邊的配置:
1.確認在「配置屬性」中的「啟用ASP.NET調試"為"True"
2.確認你的"web.config"中的"debug=true"
3.若你安裝過wind2000 SP4後,則要在命令行執行"regsvr32 i aspnet_isap.dll"
4.在IIS里查看站點信息,選中"目錄安全性",裡面有"匿名訪問和身份驗證控制",再點擊"編輯..",確認"集成Windows身份驗證"選項被選中
5.在IE選項->"安全設置"->"自定義級別"里有"用戶驗",確認選中"自動使用當前用戶名和密碼登錄"
6。修改machine.config文件里的username=machine改為username=system
7。可以通過附加進程去調試。把w3wp.exe 加進去調試
或者試一試 aspnet_regiis.exe -r
⑵ asp.net為什麼我每次修改web.config,頁面就會報錯
CustomErrors默認情況下好像並不處理htm。而是直接發給客戶端。因為.config文件由aspnet_isapi.dll來處理的。要想添加的話可以去IIS里設橡褲置。羨如逗
進入管理工具里的「Internet 信息服務(IIS)管理器」,在網站上按右鍵--屬性--主目錄--配置--點擊映射里的添加,
可執行文件輸入:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
擴展名輸入:兄賣.htm,然後確定即可。
⑶ 如何通過代碼修改web.config文件
代碼如下:請導入 System.XML命名空間
string file = Server.MapPath(@"~\web.config");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(file);
string s1 = "aaa";
string s2 = "bbb";
string h = "ccc";
string user = "ddd";
string pass = "eee";
XmlNodeList nodeList = null;
nodeList = xmlDoc.SelectSingleNode("configuration//connectionStrings").ChildNodes;
//遍歷所有子節點
foreach (XmlNode xn in nodeList)
{
//將子節點類型轉換為XmlElement類型
XmlElement xe = xn as XmlElement;
if (xe.Name == "add")
{
if (xe.GetAttribute("name") == "acountConnectionString")
{
xe.SetAttribute("connectionString", s1);
}
if (xe.GetAttribute("name") == "mailaddress")
{
xe.SetAttribute("connectionString", s2);
}
}
}
nodeList = xmlDoc.SelectSingleNode("configuration//system.net//mailSettings//smtp").ChildNodes;
foreach (XmlNode xn in nodeList)
{
//將子節點類型轉換為XmlElement類型
XmlElement xe = xn as XmlElement;
if (xe.Name == "network")
{
xe.SetAttribute("host", h);
xe.SetAttribute("userName", user);
xe.SetAttribute("password", pass);
break;
}
}
xmlDoc.Save(file);
但實際上通過代碼修改web.config的操作微乎其微
1. web.config的修改可能會導致session等伺服器變數的丟失
2. 如果你的頁面是發布在IIS下面,要通過頁面修改web.config,必須給web.config這個文件添加 Network service (IIS6)或 ASPNET (IIS)用戶的寫許可權,這在實際操作中是不可想像的
⑷ 如何對web.config進行加密和解密
在WEB網站開發過程中,如果我們將資料庫連接字元串封裝到.DLL文件中,將會給資料庫和程序的遷移帶來麻煩,因為萬一伺服器地址或
者資料庫發生變更,那麼我們就不得不修改源程序並重新將其編譯。更好的解決方法是將資料庫連接字元串寫入到web.config配置文件中,可問題是將連
接字元串寫入到web.config文件中之後,任何人都能打開看到所連接的資料庫名和密碼,又會帶來安全隱患,因此為了保證資料庫的安全性,我們可以通
過使用微軟IDE自帶的命令aspnet_regiis.exe將配置文件web.config中指定的標簽進行加密,如果以後想查看加密後的連接字元
串,我們還可以使用aspnet_regiis.exe將加密後的字元串進行解密。
1. 加密通用語法
加密一個特定網站的web.config文件的通用形式
aspnet_regiis.exe -pef secion physical_directory -prov provider
或
aspnet_regiis.exe -pe secion -app virtual_directory -prov provider
其中,各個參數的含義如下:
section表示要加密的配置節
physical_directory用於指定站點的物理路徑。
virtual_directory用戶指定虛擬路徑。
provider指定加密提供程序。
加密一個特定站點的連接字元串就是:
aspnet_regiis.exe -pef "connectionStrings" "你的web項目路徑" -prov ""
其中是Windows數據保護API(DPAPI)提供程序,它使用Windows內置的密碼學技術來加解密配置節。默認情況下,這個提供程序使用本機的密鑰。
2. 加密方法
運行Visual Studio 2008命令提示
加密後的結果
<connectionStrings configProtectionProvider="">
<EncryptedData>
<CipherData> <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAy1WyvzomB0WAlqYo++bAce//lsg/so66+//LD9H9WQ9uF3t/0MoMI9tbrWdFJ1Yu5/e3PAV4RCbCvDlPD0VC7hxtDMqfRjQ+1OhTdk2woiSNpx0TzXwZE25o4vlXq/+lZtAj8lzf2bK+/L0+6bizStRZ7BDnOngV//CVDQ==</CipherValue>
</CipherData>
</EncryptedData>
lt;/connectionStrings>
3. 解密
解密該連接字元串也很簡單
aspnet_regiis.exe -pdf "connectionStrings" '你的web項目路徑"
解密後的結果:
<connectionStrings>
<add name="Sql" connectionString="Data Source=.;Initial Catalog=MySchool;Integrated Security=True" />
</connectionStrings>
4. 後台代碼讀取配置文件web.config中資料庫連接字元串的方法:
using System.Configuation;
…
protected void Page_Load(object sender, EventArgs e)
{
lblMessage.Text = ConfigurationManager.ConnectionStrings["Sql"].ToString();
}
…
5. 在連接字元串的加密和解密的過程中,需要注意一下幾點。
使用加密的連接字元串
使用加密的連接字元串不需要編碼解密,ASP.NET會自動對加密內容進行解密。
加密和解密在同一台計算機上使用
在加密過程中,使用了一個基於本機的密鑰。這就意味著加密和解密必須在同一台計算機上進行,否則將不能解密。同時,在一台計算機上加密的配置,在另一台計算機上將不能正常使用。
中文路徑問題
該命令對中文支持不是很好。如果站點的路徑中有中文字元,也許不能正常加解密。
⑸ 良精.net版本web.config設置問題
將 web.config 中
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
改成
<customErrors mode="Off" defaultRedirect="mycustompage.htm"/>
再運行,試試
看有攔肆什麼信衡鍵信息滑巧
⑹ 如何設置web.config,以便使用session進行驗證
StateServer模式 進冊橡埋程外保存session的.在IIS或ASPNET服務意外關閉時還能繼續保持狀態.
配置web.config:
<system.web> 節點下:
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424"></sessionState>
如果是遠程的計州螞如返算機還需要配置注冊表。
⑺ 如何對Web.config中資料庫連接字元串進行加解密
一、如何對Web.config中資料庫連接字元串進行加解密,避免明文方式。 1)概述:
Web.Config 中可以存儲資料庫連接語句,通常存於 <connectionString>配置節中,程序調用非常方便,但是在系統的應用過程中,利用明文存儲這些敏感信息是不安全的,這就需要對配置信息進行加密,加密後即使攻擊者獲取了對配置文件的訪問,也可以使攻擊者難以獲取對敏感信息的訪問,從而改進應用程序的安全性。
使用 ASP.NET IIS 注冊工具 (Aspnet_regiis.exe) 加密或解密 Web 配置文件的各節。而在在處理 Web.config 文件時,ASP.NET 將自動解密已加密的配置元素。
要加密配置文件的內容, 通過Aspnet_regiis.exe 工具與 –pe 選項以及要加密的配置元素的名稱一起使用,利用.NET Framework 提供的2種受保護配置程序來實現節點加解密:
名為的 實例使用 Windows 數據保護 API (DPAPI) 對數據進行加密和解密。
名為的 實例使用 RSA 加密演算法對數據進行加密和解密。該提供程序配置為默認提供程序
下面就這2中加密方式,分別進行舉例如下:
2)使用 來加解密配置節
利用aspnet_regiis -pef connectionStrings 對web.config 加密 在伺服器命令提示符下,輸入如下命令:
C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pef connectionStrings D:\程序\某系統\EpointBid_HuiYuan –prov 正在加密配置節„ 成功!
-pef 指定兩個參數:
這里 connectionStrings 是要進行加密的配置節,後面是具體的程序路徑 這里 D:\程序\某系統\EpointBid_HuiYuan 是要加密的配置文件所在的物理目錄。
-prov 表示使用哪個驅動來加密,一共有兩個驅動可選,在類似於
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG 的位置,我們可以找到 machine.config 文件,在其 configProtectedData 配置節,我們可以看到這兩個驅動的名稱,以及默認的驅動是哪一個。這兩個驅動是 (類名 ,詳細操作見下說明示例)和
(類名 )。
如果不加驅動選項,則採用默認驅動進行加密。
⑻ 我在IIS搭建asp.net的時候,不小心刪掉了web.config,怎麼辦
在安裝了IIS先再安裝VS.NET運行平台的情況下,因為在安裝VS.NET平台時系統就已經自動做好了配置。如果是先安裝了VS.NET再安裝IIS或要重新安裝IIS,在這種情況下就要人工配置.NET運行環境了,這個配置過程很簡單,對於winxp系統枯橘,在開始->;運行菜單中輸入執沒沒團行命令:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i 即可,在win2000系統是:C:\WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i 。
注意除了安裝IIS還要安裝.net framework 框架包,否則程察陵序無法運行。
⑼ asp.net的配置文件web.config怎麼解密
使用「」形式來加密
test.aspx程序文件基本如上,
把
section.SectionInformation.ProtectSection(「」);
改成
section.SectionInformation.ProtectSection(「」);
但這個時候你訪問網站的時候很有可能會出現
說明:
在處理向該請求提供服務所需的配置文件時出錯。請檢查下面的特定錯誤詳細信息並適當地修改配置文件。
分析器錯誤信息: 未能使用提供程序「」進行解密。
提供程序返回錯誤信息為: 打不開 RSA 密鑰容器。
這樣的錯誤,解決方法是:
進dos運行:aspnet_regiis -pa 「NetFrameworkConfigurationKey」
「NT AUTHORITY\NETWORK SERVICE」
如果運行出錯,需要把目錄 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
放入環境變數path中。此時就可以成功訪問網站了。
同樣可以通過命令行來實現「」加密
注意:你也可以不運行 aspnet_regiis -pa 「NetFrameworkConfigurationKey」
「NT AUTHORITY\NETWORK SERVICE」命令來注冊默認的
的RSA 密鑰容器
方法如下:
1)創建一個可導出的rsa密鑰容器,命名為Key
aspnet_regiis -pc 「Key」 -exp
2)在你要加密的信息前面指定密鑰容器,如:
<configProtectedData><providers><clear /><add name=」KeyProvider」 type=」System.Configuration., System.Configuration, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL」 keyContainerName=」Key」 useMachineContainer=」true」/></providers></configProtectedData><connectionStrings><add name=」SQLConnString」 connectionString=」Data Source=yourIP;Initial Catalog=test;User Id=yourID;Password=yourPassword;」providerName=」System.Data.SqlClient」 /></connectionStrings>
並且確保在configuration節的xmlns屬性有如下值:
3)對配置文件進行加密
aspnet_regiis -pef 「connectionStrings」 「E:\project\Test」 -prov 「KeyProvider」
參數分別為:需要加密的配置節、項目所在目錄的物理路徑、加密所使用的密鑰容器名稱
再看web.config文件,就會發現connectionStrings節已經被加密了,但
是運行程序會發現程序仍然可以正確訪問資料庫。
此時,只需運行:
aspnet_regiis -pdf 「connectionStrings」 「E:\project\Test」
就可以對web.config文件進行解密。
(注意,如果還是有錯誤,那可能是您沒有給生成的密匙文件足夠的許可權,
去到C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
目錄下,找到剛生成的密匙文件,把network service用戶的讀取許可權賦予給它,就可以了,
直接用命令的話也可以:命令如下 aspnet_regiis -pa 「Key」 「NT AUTHORITY\NETWORK SERVICE」 ,
可能需要重新啟動iis
4)把密鑰容器導出為xml文件
aspnet_regiis -px 「Key」 「e:\Key.xml」
這個命令只導出公鑰,因此以後只能用於加密,而無法解密。
aspnet_regiis -px 「Key」 「e:\Keys.xml」 -pri
這個則連私鑰一起導出了,所以我們要用這個。
5)把密鑰容器刪除
aspnet_regiis -pz 「Key」
刪除後再運行程序,會提示出錯:
分析器錯誤信息: 未能使用提供程序「KeyProvider」進行解密。
提供程序返回錯誤信息為: 打不開 RSA 密鑰容器。
同理可以證明,在任何一台未安裝正確的密鑰容器Key的機器上,
程序都無法對connectionStrings節進行解密,因此也就無法正常運行。
6)導入key.xml文件
aspnet_regiis -pi 「Key」 「e:\Keys.xml」
此時,再運行程序會發現又可以解密了。證明加密與解密機制運行正常。
最後說一下這個機制所提供的安全性保障可以運用在什麼方面:
對winform程序的app.config進行加密實際意義並不大,因為無論如何,
客戶機都可以通過運行aspnet_regiis -pdf 來對配置文件進行解密,從而暴露敏感信息。
對於web.config進行加密的意義也僅限於,當web.config文件不小心泄露時,
不會同時泄露敏感信息,如果惡意攻擊者已經取得了在伺服器上運行程序的許可權,
那麼同app.config一樣,可以很容易通過通過運行aspnet_regiis -pdf 獲取明文了。
還有,通過aspnet_regiis -pa 「Key」 「NT AUTHORITY\NETWORK SERVICE」
控制對不同用戶對密鑰容器的訪問許可權,應該還可以進一步獲取一些安全性,
比如可以控制某些用戶即使登錄到伺服器上,也無法用aspnet_regiis -pdf對配置文件進行解密。
⑽ asp.net4.0應用程序添加asp.net ajax組件 怎麼配置web.config,分數不高,但是還是請高手見諒
完全沒有分嘛!嘿嘿
給你看一個案例吧
<?xml version="1.0"?>
<!--
有關如何配置 ASP.NET 應用程序的詳細信息,請訪問
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<httpHandlers>
<add verb="*" path="Images/Users/*.jpg" type="CoverHandler"/>
</httpHandlers>
<compilation debug="true" targetFramework="4.0"/>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880"/>
</authentication>
<membership>
<providers>
<clear/>
<add name="搜改圓AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" ="0" passwordAttemptWindow="10" applicationName="/"/>
<殲遲/providers>
</membership>
<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
</providers>
</profile>
<roleManager enabled="false">
<providers>
<clear/世塌>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/"/>
<add name="" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/"/>
</providers>
</roleManager>
</system.web>
<system.webServer>
<moles ="true"/>
</system.webServer>
</configuration>