【原創】自訂Membership,KSPMembership發布,支援多資料庫(mysql/oracle/sqlserver)

來源:互聯網
上載者:User

Membership相信大家都不陌生,Membership是微軟在.NET 2.0時代推出的一套使用者管理工具,問題在於微軟官方的Membership僅僅是對SqlServer製作的,如果你的系統需要使用Mysql或者是Oracle就不好辦了,雖然有些別的Membership能支援Mysql或者Oracle的,但是還沒有一個整合到一起的。

經曆了這麼多項目之後,有的項目用的是SqlServer,有的項目用的是Oracle,還有的項目用的是Mysql,而這些MIS項目基本上都用到了Membership,所以才會想到做一個同時支援多資料庫的Membership,而且這個Membership和微軟官方的一樣,都是標準的Membership,你原來的代碼不用做任何更改就可以使用。

下面先介紹一下這個項目的基本思路:

1、        自訂的Membership需要從MembershipProvider 類繼承,MembershipProvider類是一個抽象類別,一般只要實現了這些類中的方法就可以完成自己的Membership,我的這個自訂的Membership叫KSPMembership。

2、        多資料庫的支援是在自訂的Membership中進行分層,調用能支援多資料庫的DAL即可。這裡面使用了Ibatis.net來支援多資料庫。

3、        微軟內建的Membership資料庫中有不少表,分析之后里面有些表沒啥用,這裡Membership相關的一共就4張表,Application(應用程式表),Role(角色表),User(使用者表),UserInRole(使用者對應角色表)

下面看看具體如何使用,以ASP.NET MVC2,MySql 舉例:

1、  執行建表的SQL語句,將這4張表建立起來,SQL語句在附件組件包中。

2、  開啟VS2008,建立一個ASP.NET MVC2 工程(MVC1 也一樣),將組件包中所有DLL檔案都COPY到BIN目錄下。

3、  修改Web.Config檔案,

A、 在<appSettings>節點下增加:

    <appSettings>
        <add key="KSPDBType" value="oracle"/>
        <add key="KSPAPPName" value="MoleCart"/>
    </appSettings>

 

說明:KSPDBType 是表示你的資料庫類型,可以是 mysql/oracle/sqlserver 中的任意一個字串,不區分大小寫;KSPAPPName 是表示你的應用程式名稱。

B、 在<connectionStrings>節點下增加:

    <connectionStrings>
        <add name="KSPDB" connectionString="server=127.0.0.1;database=kingsiteshop;user id=root;password=;charset=utf8"/>
    </connectionStrings>

 

說明:這個資料庫連接是為Membership準備的。注意 KSPDB 是寫死的,不能改變

C、 在<system.web>節點下修改增加:

代碼        <membership defaultProvider="KSPMembershipProvider"
                    userIsOnlineTimeWindow="15">
            <providers>
                <clear />
                <add
                    name="KSPMembershipProvider"
                    type="KingSite.Purview.KSPMembershipProvider,KingSite.Purview"
                    enablePasswordRetrieval="false"
                    enablePasswordReset="true"
                    requiresQuestionAndAnswer="true"
                    requiresUniqueEmail="true"
                    passwordFormat="Hashed"
                    maxInvalidPasswordAttempts="5"
                    minRequiredPasswordLength="6"
                    minRequiredNonalphanumericCharacters="0"
                    passwordAttemptWindow="10"
                    writeExceptionsToEventLog="true"
            />
            </providers>
        </membership>
        <roleManager enabled="true" cacheRolesInCookie="true" cookieName=".ASPROLES"
            defaultProvider="KSPRoleProvider">
            <providers>
                <clear />
                <add autogenerateschema="true" writeExceptionsToEventLog="true"
                    name="KSPRoleProvider" type="KingSite.Purview.KSPRoleProvider,KingSite.Purview" />
            </providers>
        </roleManager>

 

4、  完成後在VS2008 中先編譯MVC網站項目,然後選中你的ASP.NET MVC 項目,然後點擊 項目菜單-》ASP.NET 配置,開啟VS內建的網站配置網頁。

5、  如果一切正常你就會看到。

6、  恭喜你,自訂Membership可以工作了,你可以通過修改設定檔中的KSPDBType節點來修改資料庫類型,很方便吧,不同的項目就可以配置為不同的資料庫了。

7、KSPMembership在c# 3.5,Mysql 5.1,Oralce 10g,SqlServer 2008 測試通過。

8、  下載KSPMembership組件包。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.