前段时间为了实现在MOSS中用自定义MembershipProvder实现Forms验证,参阅了不少同行的博文,花费了不少时间,现在终于成 功。(松了一口气,也有点小成就感——虽说是参考他人的教程搞出来的,自我YY下了,大家莫见笑啊:)。)下面将整个实现过程和大家分享一下,也算做个总 结。当然在此之前要先感谢下提供类似教程的同行们,因为你们的无私让小弟在前行的道路上少走了不少弯路,小弟在此向你们鞠躬了!(参考文章实在再多,在此 无法一一列举,如有同行看到后觉得有似曾相识之感,希望能够一笑而过,莫要扔臭鸡蛋,烂白菜啊!呵呵)

不再废话,开始正文:

-------------------------------------------------------------------------------------------------------------

软件环境:

1.Window Srver 2003 SP2

2.IIS6.0

3.Asp.Net2.0

4.SharePoint2007中文版

5.SQL Server 2005

6.vs2005/vs2008

安装好sharepoint后,打开IIS可以发现在“应用程序池”和“网站”中都多了"SharePoint Central Administration v3”和"SharePoint 80"两项。同时点开“默认网站”->“wss”->"VirtualDirectories"会发现多了"80"和"35117"(各人的 会不同)两个文件夹。在目录地址“C:\Inetpub\wwwroot\wss\VirtualDirectories”中我们能找到这两个文件夹。其 中"35117”是管理中心站点,"80”是安装SharePoint时默认创建的站点。

右击"网站"->"SharePoint Central Administration v3"->"所有任务"->"SharePoint 管理中心" 可以进入到SharePoint管理中心网站。(也可以通过“开始”->"程序"->"管理工具"->"SharePoint 3.0 管理中心"进入)

创建SharePoint网站

进入SharePint管理中心,选择“应用程序管理”,点击“SharePoint Web 应用程序管理”目录下的“创建或扩展web应用程序”。选择“创建 web 应用程序” ,修改下端口号如9000,选择允许匿名访问,输入应用程序池可配置账号密码(域管理员账号),其它的选择默认,点击“确定”即可创建一个 web应用程序。(创建成功后我们会发现在IIS中的“应用程序池”和“网站”中多了"SharePoint 9000"的文件夹。同样的在“默认网站”->“wss”->"VirtualDirectories"下也多了"9000"的网站。)点击 成功提示中的“创建网站集”(也可以回到管理中心应用程序管理,在“SharePoint网站管理”目录下点击“创建网站集”)进入到新建网站集界面。输 入标题、url路径(可选择默认)、选择模板,输入网站集主管理员(域管理员账号)点击确定。创建成功后,复制网站集的url 在新浏览器中打开,输入网站集管理员帐号密码,即可看到我们刚创建的网站。SharePoint 9000应用程序目前的验证方式是Windows验证,也是创建应用程序时默认的验证方式。在管理中心->应用程序管理->“应用程序安全 性”目录下点击“验证提供程序”,更改右上角的“web 应用程序”为我们刚建的9000。可以看到成员身份提供程序为“Windows”。点击“默认”进入到“编辑验证”页,我们可以看到验证类型为 “windows”,同时还有“表单”和“web单一登录”两种验证方式可选。我们要实现的就是选择“表单”验证并使用自定义的“成员身份提供程序”。该 部分暂且告一段落。可以先放一边了。

实现自定义的成员身份验证程序

新建类库项目“MyProvider”,新建一个类“MyMembershipProvider”并继承抽象类 “MembershipProver”,重写父类的方法。

主要重写的方法如下:

public override bool ValidateUser(string username, string password);

public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords);

public override MembershipUser GetUser(string username, bool userIsOnline);

public override MembershipUser GetUser(object providerUserKey, bool userIsOnline);

其它方法可以根据你的需要来实现。

当然实现好后最好新建一个web应用程序使用该自定义成员身份提供程序进行forms验证测试,以确保自己的实现没有问题。

注意:要把该类库生成强命名程序集,否则在外部调用时可能会出现“未法加载类型..."错 误。到此我要介绍的东西已经结束了,希望对大家能够有所帮助,也算是我近几天学习成果的总结吧!

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-23
  • 2022-12-23
  • 2021-08-30
  • 2021-11-22
  • 2022-02-12
猜你喜欢
  • 2021-07-26
  • 2022-02-19
  • 2022-03-03
  • 2022-12-23
  • 2022-12-23
  • 2021-12-19
  • 2022-12-23
相关资源
相似解决方案