人生是一场不能存盘的RPG,我只能尽量多搞几个Screenshot

August 19, 2006

PetShop中的OracleMembershipProvide

Filed under: 代码学习

Asp.net的membership缺省是放在sql server或 sql server exp中的,
如果使用Oracle就需要实现自己的memebership Provider.

Provider模式乃Asp.net2.0架构中精华之一,同时memebership也是ASP.Net2.0的要点.

1.web.config中
<membership defaultProvider=”SQLMembershipProvider”>
<providers>
<add name=”SQLMembershipProvider”
type=”System.Web.Security.SqlMembershipProvider”
connectionStringName=”SQLMembershipConnString”
applicationName=”.NET Pet Shop 4.0″
enablePasswordRetrieval=”false”
enablePasswordReset=”true”
requiresQuestionAndAnswer=”false”
requiresUniqueEmail=”false”
passwordFormat=”Hashed”/>
</providers>
</membership>

<!– Membership Provider for Oracle –>
<!–
<membership defaultProvider=”OracleMembershipProvider”>
<providers>
<clear/>
<add name=”OracleMembershipProvider”
type=”PetShop.Membership.OracleMembershipProvider”
connectionStringName=”OraMembershipConnString”
enablePasswordRetrieval=”false”
enablePasswordReset=”false”
requiresUniqueEmail=”false”
requiresQuestionAndAnswer=”false”
minRequiredPasswordLength=”7″
minRequiredNonalphanumericCharacters=”1″
applicationName=”.NET Pet Shop 4.0″
hashAlgorithmType=”SHA1″
passwordFormat=”Hashed”/>
</providers>
</membership>
–>
这里有一些配置需要注意, passwordFormat为”Hashed”时无法取回password,只能reset,此时若
enablePasswordRetrieval设为true,会出错.

if(passwordFormat == MembershipPasswordFormat.Hashed && enablePasswordRetrieval)
throw new ProviderException(”Provider cannot retrieve hashed password”);

2. Oracle的Membership表
CREATE TABLE MSPETSHOP4SERVICES.MEMBERSHIP (
UserId number NOT NULL,
Password varchar2(128 byte) NOT NULL,
PasswordFormat number NOT NULL,
MobilePin varchar2(16 byte),
Email varchar2(128 byte),
PasswordQuestion varchar2(256 byte),
PasswordAnswer varchar2(128 byte),
IsApproved char(1 byte) NOT NULL,
CreatedDate date NOT NULL,
LastLoginDate date NOT NULL,
LastPasswordChangedDate date NOT NULL,
“Comment” varchar2(4000 byte),
PasswordSalt varchar2(128 byte),
CONSTRAINT PK_MEMBERSHIP PRIMARY KEY(UserId),
CONSTRAINT FK_MEMBERSHIP_USERS FOREIGN KEY(UserId)
REFERENCES MSPETSHOP4SERVICES.USERS(UserId)
ON DELETE CASCADE);

3.OracleMembershipProvider 代码实现:

很多都没有实现.

可参照
Writing A Custom Membership Provider for your ASP.NET 2.0 Web Site

Building Custom Providers for ASP.NET 2.0 Membership

Comments »

The URI to TrackBack this entry is: http://recordsome.blogsome.com/2006/08/19/p155/trackback/

No comments yet.

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>



Anti-spam measure: please retype the above text into the box provided.






















Get free blog up and running in minutes with Blogsome
Theme designed by Hadley Wickham