第一次用.net2.0 LOGIN登陸控件的困惑和解決方法
1、我們沒(méi)有真正的服務(wù)器,我們只是租用了.net2.0 + SQLserver空間,SQL數(shù)據(jù)庫(kù)名是固定的。
2、空間提供商不可能給我們?cè)O(shè)定數(shù)據(jù)源或給你aspnetdb數(shù)據(jù)庫(kù)權(quán)限。
3、我們沒(méi)有服務(wù)器的 \Windows\Microsoft.Net\Framework\v2.x\Config 權(quán)限。
已知上面三點(diǎn),如果直接把本地測(cè)試好的項(xiàng)目傳到服務(wù)器肯定會(huì)出錯(cuò)(因?yàn)樗J(rèn)是調(diào)用\Windows\Microsoft.Net\Framework\v2.x\Config ),我認(rèn)為好的解決方法是把a(bǔ)spnetdb數(shù)據(jù)庫(kù)內(nèi)容全部導(dǎo)入自己的遠(yuǎn)程SQL數(shù)據(jù)庫(kù)后,再定義項(xiàng)目的web.config數(shù)據(jù)庫(kù)連接字符串。
web.config
<?xml version="1.0"?>
<!--
注意: 除了手動(dòng)編輯此文件以外,您還可以使用
Web 管理工具來(lái)配置應(yīng)用程序的設(shè)置??梢允褂?Visual Studio 中的
“網(wǎng)站”->“Asp.Net 配置”選項(xiàng)。
設(shè)置和注釋的完整列表在
machine.config.comments 中,該文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings>
<!--定義數(shù)據(jù)庫(kù)連接-->
<add name="DbName" connectionString="Persist Security Info=False;server=127.0.0.1;database=aspnetdb;uid=sa;pwd=123;pooling=true"/>
</connectionStrings>
<appSettings>
</appSettings>
<system.web>
<!--
connectionStringName 數(shù)據(jù)庫(kù)連接。這個(gè)要在web.config設(shè)置
enablePasswordRetrieval 獲得一個(gè)值,指示當(dāng)前成員資格提供程序是否配置為允許用戶檢索其密碼。
enablePasswordReset 獲得一個(gè)值,指示當(dāng)前成員資格提供程序是否配置為允許用戶重置其密碼。
requiresQuestionAndAnswer 獲取一個(gè)值,該值指示默認(rèn)成員資格提供程序是否要求用戶在進(jìn)行密碼重置和檢索時(shí)回答密碼提示問(wèn)題。
applicationName 獲取或設(shè)置應(yīng)用程序的名稱。
requiresUniqueEmail 指示用戶在創(chuàng)建用戶時(shí)是否必須提供唯一的電子郵件地址值。
passwordFormat 指示在成員資格數(shù)據(jù)存儲(chǔ)區(qū)中存儲(chǔ)密碼的格式。下面有詳細(xì)說(shuō)明
maxInvalidPasswordAttempts 獲取鎖定成員資格用戶前允許的無(wú)效密碼或無(wú)效密碼提示問(wèn)題答案嘗試次數(shù)。
minRequiredPasswordLength 獲取密碼所要求的最小長(zhǎng)度。
minRequiredNonalphanumericCharacters 獲取有效密碼中必須包含的最少特殊字符數(shù)。
passwordAttemptWindow 獲取在鎖定成員資格用戶之前允許的最大無(wú)效密碼或無(wú)效密碼提示問(wèn)題答案嘗試次數(shù)的分鐘數(shù)。
對(duì)PasswordFormat 的詳細(xì)說(shuō)明
屬性指示存儲(chǔ)密碼的格式。密碼可以采用 Clear、Encrypted 和 Hashed 密碼格式存儲(chǔ)。Clear 密碼以明文形式存儲(chǔ),這可以提高存儲(chǔ)和檢索密碼的性能,但安全性較差,當(dāng)數(shù)據(jù)源安全性受到威脅時(shí)此類密碼很容易被讀取。Encrypted 密碼在存儲(chǔ)時(shí)進(jìn)行了加密,可以在比較或檢索密碼時(shí)進(jìn)行解密。此類密碼在存儲(chǔ)和檢索時(shí)需要進(jìn)行額外的處理,但比較安全,在數(shù)據(jù)源的安全性受到威脅時(shí)不容易被獲取。Hashed 密碼在存儲(chǔ)到數(shù)據(jù)庫(kù)時(shí)使用單向哈希算法和隨機(jī)生成的 salt 值進(jìn)行哈希處理。在驗(yàn)證某一密碼時(shí),將用數(shù)據(jù)庫(kù)中的 salt 值對(duì)該密碼進(jìn)行哈希計(jì)算以進(jìn)行驗(yàn)證。無(wú)法檢索哈希密碼。
-->
<roleManager enabled="true" />
<membership>
<providers>
<remove name="AspNetSqlMembershipProvider"/>
<add name="AspNetSqlMembershipProvider"
type=" System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="DbName"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExpression="" />
</providers>
</membership>
<!--
設(shè)置 compilation debug="true" 可將調(diào)試符號(hào)插入
已編譯的頁(yè)面中。但由于這會(huì)
影響性能,因此只應(yīng)在開(kāi)發(fā)過(guò)程中設(shè)置
此值。
Visual Basic 選項(xiàng):
設(shè)置 strict="true" 將禁止所有會(huì)導(dǎo)致
數(shù)據(jù)丟失的類型轉(zhuǎn)換。
設(shè)置 explicit="true" 將強(qiáng)制聲明所有變量。
-->
<compilation debug="true" strict="false" explicit="true"/>
<pages>
<namespaces>
<clear/>
<add namespace="System"/>
<add namespace="System.Collections"/>
<add namespace="System.Collections.Specialized"/>
<add namespace="System.Configuration"/>
<add namespace="System.Text"/>
<add namespace="System.Text.RegularExpressions"/>
<add namespace="System.Web"/>
<add namespace="System.Web.Caching"/>
<add namespace="System.Web.SessionState"/>
<add namespace="System.Web.Security"/>
<add namespace="System.Web.Profile"/>
<add namespace="System.Web.UI"/>
<add namespace="System.Web.UI.WebControls"/>
<add namespace="System.Web.UI.WebControls.WebParts"/>
<add namespace="System.Web.UI.HtmlControls"/>
</namespaces>
</pages>
<!--
通過(guò) <authentication> 節(jié)可以配置 ASP.NET 使用的
安全身份驗(yàn)證模式,
以標(biāo)識(shí)傳入的用戶。
-->
<authentication mode="Forms" />
<!--
如果在執(zhí)行請(qǐng)求的過(guò)程中出現(xiàn)未處理的錯(cuò)誤,
則通過(guò) <customErrors> 節(jié)可以配置相應(yīng)的處理步驟。具體說(shuō)來(lái),
開(kāi)發(fā)人員通過(guò)該節(jié)可以配置
要顯示的 html 錯(cuò)誤頁(yè)
以代替錯(cuò)誤堆棧跟蹤。
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
注:membership節(jié)點(diǎn)的那個(gè)注釋是轉(zhuǎn)載的,忘了地址了。
相關(guān)文章
詳解ASP.NET Core實(shí)現(xiàn)強(qiáng)類型Configuration讀取配置數(shù)據(jù)
本篇文章主要介紹了詳解ASP.NET Core實(shí)現(xiàn)強(qiáng)類型Configuration讀取配置數(shù)據(jù) ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
Asp.net 連接MySQL的實(shí)現(xiàn)代碼[]
ASP.NET連接MySQL需要一個(gè)組件(.net本身不提供訪問(wèn)MySQL的驅(qū)動(dòng))MySQL.Data.Dll,此為官方提供(純C#開(kāi)發(fā),開(kāi)源噢),有多個(gè)版本選擇,采用的數(shù)據(jù)訪問(wèn)模式為ADO.NET,跟asp.net訪問(wèn)sqlserver很像,非常簡(jiǎn)單。2009-08-08
.Net插件框架Managed Extensibility Framework簡(jiǎn)介
這篇文章介紹了.Net插件框架Managed Extensibility Framework,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
ASP.NET Core應(yīng)用錯(cuò)誤處理之DeveloperExceptionPageMiddleware中間件呈現(xiàn)“開(kāi)發(fā)者
這篇文章主要給大家介紹了關(guān)于ASP.NET Core應(yīng)用錯(cuò)誤處理之DeveloperExceptionPageMiddleware中間件呈現(xiàn)“開(kāi)發(fā)者異常頁(yè)面”的相關(guān)資料,需要的朋友可以參考下2019-01-01
asp.net System.Net.Mail 發(fā)送郵件
一個(gè)師弟發(fā)了段代碼給我,說(shuō)調(diào)試了很久發(fā)送郵件都沒(méi)有成功。自己使用過(guò)程中,也發(fā)現(xiàn)了很多問(wèn)題,但最簡(jiǎn)單的問(wèn)題是“發(fā)件方”地址根本不支持smtp發(fā)送郵件。2009-04-04
C# 無(wú)限級(jí)分類的實(shí)現(xiàn)
采用存儲(chǔ)過(guò)程實(shí)現(xiàn)遞歸邏輯,直接返回子分類列表的方式應(yīng)該有更好的性能,尤其是Web服務(wù)器與數(shù)據(jù)庫(kù)服務(wù)器不位于同一臺(tái)服務(wù)器上時(shí),更會(huì)受網(wǎng)絡(luò)影響。2009-02-02
UpdatePanel和jQuery不兼容 局部刷新jquery失效
在做項(xiàng)目中發(fā)現(xiàn),在使用了UpdatePanel的地方,局部刷新后,jquery失效了,后來(lái)經(jīng)過(guò)搜索找到不錯(cuò)的解決方法,在此與大家分享下,有類似問(wèn)題的朋友可以參考下2013-09-09

