不再废话,开始正文:
————————————————————————————————————-
软件环境:
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验证测试,以确保自己的实现没有问题。
注意:要把该类库生成强命名程序集,否则在外部调用时可能会出现“未法加载类型…”错 误。如何强命名程序集(转)
配置MOSS网站使用自定义MembershipProver进行Forms验证
进入”管理中心”->”应用程序管理”->”验证提供程序’->选择”web 应用程序”为端口号为9000的应用程序->点击“默认”->进入到编辑验证页,选择验证方式为“Forms”,选择“启用匿名访问”,输入 成员身份提供程序名称,如:MyMembershipProver(可以随意,注意要与后续配置文件中的name一致)点击确定。
a.把上一节生成的强命名程序集MyProvider.dll拷贝到应用程序9000和管理中心站点(35117)的bin目录下。
(路径:”C:\Inetpub\wwwroot\wss\VirtualDirectories”)
b.把MyProvider.dll添加到GAC中。如何将程序集(.dll文件)添加到GAC(全局程序集缓存)?
c.修改应用程序9000站点的web.config配置文件(在“C:\Inetpub\wwwroot\wss \VirtualDirectories\9000”下):
在<configuration>节点中添加如下代码:
<connectionStrings>
<add name=”ConnectionString” connectionString=”数据库服务器;uid=sa;pwd=sa;database=数据库”/>
</connectionStrings>
在<system.web>节点下添加如下代码:(defaultProvider名称必须和前边配置的一致)
<membership defaultProvider=”MyMembershipProvider”>
<providers>
<clear/>
<add connectionStringName=”MyConnectionString” applicationName=”/” name=”MyMembershipProvider” type=”MyProvider.MyMembershipProvider,MyProvider,Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”/>
</providers>
</membership>
type内容的说明:1、命名空间.类名;2、民命空间;3、版本号;4、区域;5、强命名程序集的公钥
d.修改管理中心站点的web.config配置文件(在“C:\Inetpub\wwwroot\wss\VirtualDirectories \35117”下):
修改内容同上边的一致。
注意需要将<trust level=”WSS_Minimal” originUrl=”” />中的level改为“Full”。
e.重启下IIS(开始-运行(ctrl + R)->iisreset)
f.进入”管理中心”->”应用程序管理”->”网站集管理员->”网站集”选择端口号为9000的应用程序下的网站集 ->我们发现原来设置的网站集主管理员竟然提示”找不到完全匹配的项目“,那是因为我们改为Forms验证后,他就会通过我们设置的自定义 MembershipProver查询我们连接的数据库,来判断用户是否存在。这是我们输入一个数据库中已有的用户,点击保存。再次访问9000站点的网 站集地址,输入一个我们数据库中已有的用户点击登录,发现提示当前登录用户为XX,但是却无法访问网站集,这是因为我们没有给该用户分配访问网站集的权 限。
进入”管理中心”->”应用程序管理”->”Web 应用程序策略”->点击“添加用户”,点击下一步,输入数据库中一个有效用户,权限选择“完全控制”,点击“完成”。这时再次访问我们新建的应用程 序集,输入应用程序策略中具有完全控制权限的用户名和密码,点击登录,发现已经可以进入改网站集。点击“人员和组”->”新建”->”添加用 户”进入添加用户界面,在输入框中输入数据库中的用户名(多个之间可以用分号分隔),选择直接分配用户权限,选择权限如“读取 查看”,点击确定。点击网站右上角的“欢迎xx”下拉框选择“以其他身份登录”,重新回到登录页,用我们刚新建的用户登录,你会发现已经能够访问网站(当 然只有查看权限)。
到此我要介绍的东西已经结束了,希望对大家能够有所帮助,也算是我近几天学习成果的总结吧!
转载于:https://www.cnblogs.com/Little-Li/archive/2011/05/08/2040140.html
今天的文章MOSS 之 自定义MembershipProvider实现Forms方式验证分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/12977.html