在Moss中,使用自己的MembershipProvider.

  需求:Moss站点需要Form认证,同时登陆Moss站点时候需要自己的逻辑进行登陆

  解决方案:1.将Moss站点先设置成Form认证,这个就不多说了,网上一搜很多的

                   2.自定义自己的Provider类

                      我的代码:

                 

  1. Imports System.Data
  2. Imports System.Data.SqlClient
  3. Public Class AesMembershipProvider
  4.     Inherits System.Web.Security.SqlMembershipProvider
  5.     
  6.     Private ConnStr As String
  7.     Public Overrides Sub Initialize(ByVal name As String, ByVal config As System.Collections.Specialized.NameValueCollection)
  8.         ConnStr = System.Configuration.ConfigurationManager.ConnectionStrings("MyConnectionString").ToString()
  9.         MyBase.Initialize(name, config)
  10.     End Sub
  11.     Public Overrides Function ValidateUser(ByVal username As String, ByVal password As String) As Boolean
  12.         ''自己的逻辑代码,因为我就需要修改登陆这一块,所以,我就重写ValidateUser方法就可以了.
  13.     End Function
  14. End Class

                 3.编译成Dll文件,放到Moss站点的Bin目录中。

                 4.修改站点的 config文件

                     连接字符串:

                    

  1. <connectionStrings>
  2.     <remove name="MyConnectionString" />
  3.     <add name="MyConnectionString" connectionString="server=(local); database=TableName; Trusted_Connection=False ;user id 
  4. =sa ; pwd =1 "  providerName="System.Data.SqlClient" />
  5.   </connectionStrings>
  6.  '' 说明:   Trusted_Connection=False  这个貌似必须为False,因为,我刚开始用的是True,也就是WINDOWS认证,一直就报错,后来无意中修改了一下,成功了,当然改成FALSE,必须要提供数据库的用户名和密码的

 

                 Provider:

                

  1. <membership defaultProvider="AesMembershipProvider">
  2.       <providers>
  3.         <remove name="AesMembershipProvider" />
  4.         <add connectionStringName="MyConnectionString" 
  5.              passwordAttemptWindow="10" 
  6.              enablePasswordRetrieval="false"
  7.              enablePasswordReset="true" 
  8.              requiresQuestionAndAnswer="true" 
  9.              applicationName="/" 
  10.              requiresUniqueEmail="false" 
  11.              passwordFormat="Hashed"
  12.              maxInvalidPasswordAttempts="5"
  13.              minRequiredPasswordLength="1"
  14.              minRequiredNonalphanumericCharacters="0"
  15.              passwordStrengthRegularExpression="" 
  16.              description="Stores and retrieves membership data from the Microsoft SQL Server database"              
  17. name="AesMembershipProvider"
  18.              type="AesMembershipProvider.AesMembershipProvider,AesMembershipProvider, Version=1.0.0.0, Culture=neutral, 
  19. PublicKeyToken=null" />  '需要修改这个地方就行了。这个type是刚刚上边写的类库,然后用Reflence的工具就可以得到,说明,type里边要写5项,你用工具貌似就4项,所以需要自己写下, 大概 1.  命名空间.类名       2.类名(还是命名空间的名字忘记了) , 3.Version   4.Culture    5.Token        不行的话,可以多试试
  20.       </providers>
  21.     </membership>

 

                      还有个地方要修改一下: 在CONFIG文件的3/4处,大概有一句话

                      <trust level="WSS_Minimal" originUrl="" />

                      这句也要修改一下, 改成<trust level="Full" originUrl="" />    

                     刚开始报的错误,貌似就是没权限,后来搜了下,说改成Full就行了。不知道改了以后对其他地方有没有影响

                    

                     注:上边的config文件是修改的MOSS站点的配置文件,因为我是刚刚测试成功了,测试的时候我的管理中心的配置文件也修改成上边的样子了,我不知道是否用修改管理中心的配置文件,所以大家可以都试下,我就不贴什么结果了。

                   

                     大致的配置就这么多,然后在管理中心中添加站点的管理员,登陆一下,成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值