SharePoint2007 Form 认证配置(域外用户登陆)
By Josen 2009-04-03
本文所做的设置,必需是预先装好SharePoint2007的基础上,并且数据库与SharePoint2007安装在同一服务器上。
一、生成数据库
运行CMD,打开”C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe –A all
此时打开数据库,你会看到如下新生成的数据库AspNetdb,表明创建数据库已完成。
二、扩展支持Form认证的应用程序
进入SharePoint管理中心,选择”应用程序管理”,如下图
点击”创建或扩展Web应用程序”,进入如下界面
点击扩展现有Web应用程序,选择你要扩展的Web应用程序,输入端口(由于是对外的,所以用80端口,外网在访问时就不需要输入端口号了)和主机标头(此主机标头是在ISA上已经发布出去的地址)。
允许匿名访问选择”是”,区域选择”Internet”(如果你在区域选择找不到Internet,说明此Web应用程序已经扩展过了)
接下来设置验证提供程序,如下图,点击验证提供程序
可以看到默认和Internet认证两种
点击Internet,进入如下界面,验证类型选择“表单”,并选择”启用匿名认证”,成员身份验证提供程序名称输入” AspNetSqlMembershipProvi
最后点击”保存”。
此时Form验证程序算是设置好啦,访问下看看吧,如下图
但还没有帐号密码供我们登录啊,怎么办?接下来要做的就是如何新增帐号啦J,期待…
但是在做新增帐号之前,还是要设置下网站的Web.config文件的,否则如何连接到数据库啊?笨!
预先要修改的Web.Config文件有两个,为什么要说”预先”呢?!!那是因为……….
喝点水先(碧螺春啊,那个香啊)。
咳….咳……………..
那是因为啊,后面还有个Web.config文件需要设置啊,当然诸位看官一定要找到时那两个Web.config,否则也是前功尽弃啊!
第一个Web.config文件来至扩展后网站的Web.config,也就是
修改的内容是:
在<SYSTEM.WEB>的上方插入<CONNECTIONSTRINGS>节,在<SYSTEM.WEB>的内部插入<MEMBERSHIP>和<rolemanager>节
<CONNECTIONSTRINGS>节内容如下:
<connectionStrings>
<remove name="AspNetSqlProvider" />
<add name="AspNetSqlProvider" connectionString="server=server; database=aspnetdb; Trusted_Connection=True" />
</connectionStrings>
<MEMBERSHIP>和<rolemanager>节内容如下:
<membership defaultProvider="AspNetSqlMembershipProvi
<providers>
<remove name="AspNetSqlMembershipProvi
<add connectionStringName="AspNetSqlProvider" passwordAttemptWindow="10" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswe
</providers>
</membership>
<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
<providers>
<remove name="AspNetSqlRoleProvider" />
<add connectionStringName="AspNetSqlProvider" applicationName="/" description="Stores and retrieves roles data from the local Microsoft SQL Server database" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
当然要把数据库服务”server”改成你的数据库服务器名称,参考下放的位置对不对吧,见下图
第二个Web.config文件来至扩展前网站的Web.config,也就是
修改内容如下:
重新启动一下IIS服务,即完成初步配置。
接下来才是如何新增用户啦
三、新建用户
打开IIS,选中扩展前的WEB站点,点右键—新建—选择虚拟目录
输入别名”membership”,然后选择路径,设置权限
开启VS2005,点击打开-网站
修改第三个web.config(这是第三个哦,记得前面也修改过的两个吗?)
接下来的就是参考网络上的文章设置就OK啦
右建站点,点击"添加新项"
点击"Web 窗体",语言选择Visual C#,点击添加。
在"设计"模式下,点击工具箱,选中"Login"控件,拖拽到窗口松开;
使用同样的方法新建一个reg.aspx文件,将CreatUserWizard控件拖拽到窗口松开。
双击页面,使得可以在CreatUser事件中添加代码;
在相应的文件中添加如下代码:
Roles.AddUserToRole(CreateUserWizard1.UserName, "Members");
点击菜单,选择ASP.NET配置
点击安全选项卡
如出现上述情况,请检查站点的web.config文件中上述三个xml内容是否正确;
选择"安全"选项卡
选择创建或管理角色
点击"提供程序"选项卡中的测试
在IE中打开子站点下的membership虚拟目录,能顺利访问该虚拟目录
能打开REG.ASPX页面。
输入相应的字段后,点击"创建用户",即提示创建成功
再次打开网站管理中的"安全"选项卡,可以看到1234已经自动添加到members角色中。
四、总结
其实设置域外登录并不难,关键地方有两个
第一,
第二,
第三,