您好,登錄后才能下訂單哦!
本篇文章為大家展示了ASP.NET中Membership的作用是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
在本地開發一個ASP.NET2.0的應用程序時使用了Membership、Roles或Profile特性。你創建了ASP.NET一些新用戶,一切都沒有問題。
然后把這個程序copy到遠程服務器(remote server)上(或者只是移動到你本地服務器上的其他目錄)然后運行。由于某種原因,雖然我們能夠連接到Membership數據庫,但是當登陸的時候就會出現錯誤了,它并不拋出連接錯誤(connection error),而是提示你像類似的錯誤:“嘗試登陸失敗,請重試”(Login attempt unsuccessful, please try again)
原因:
這種經常出現的錯誤的原因是因為Membership(或者是roles、profile) provider已經被加入到了程序的web.config里了。但是applicationName屬性(attribute)并沒有被指定(假設下面的代碼的粗體部分布存在地話)
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"connectionStringName="LocalSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
applicationName="/"
/>
</providers>
</membership>
如果它被copy到其他的地方或服務器上并且更換了虛擬路徑(比如說“/app1” 或更通常被設置的“/”)后,當Membership APIs被使用時他們就“看”不到數據庫里已有的用戶了——因為他們將會使用一個不同的applicationName去數據庫里尋找用戶,相應地過濾 application_Users表中的用戶。這就是為什么會出現上面錯誤的原因。
如何解決這個問題:
最簡單的辦法是打開ASPNETDB數據庫中的aspnet_Users和aspnet_Application表,去“回想”(figure out,因為那時候我們的虛擬目錄叫什么名字我們恐怕已經忘了)創建用戶和其他數據的時候的程序名稱(去aspnet_Application表中查找)
然后打開你的web.config文件,添加一個applicationName屬性到provider聲明的地方并且給他賦值,例如,下面的代碼我們把它設置為在aspnet_Application表存在的/website8:
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"connectionStringName="LocalSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
applicationName="/website8"
/>
</providers>
</membership>
上述內容就是ASP.NET中Membership的作用是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。