Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8351004
  • 博文数量: 444
  • 博客积分: 10593
  • 博客等级: 上将
  • 技术积分: 3852
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-09 15:26
文章分类

全部博文(444)

文章存档

2014年(1)

2013年(10)

2012年(18)

2011年(35)

2010年(125)

2009年(108)

2008年(52)

2007年(72)

2006年(23)

分类: WINDOWS

2009-10-22 14:26:34

在网上看到别人写的以SQL作为membership-Provider的MOSS表单认证,我就自己动手,改为以AD作为membership-Provider进行单认证。

(SQL版是转别人的)

一、建立AD和表单双认证及匿名访问;
1、建立一个WEB应用程序,一个网站集(MOSS:8000); 默认为WINDOWS认证;
2、扩展WEB应用
在管理中心中选“管理中心 > 应用程序管理 > 创建或扩展 Web 应用程序 > 扩展现有 Web 应用程序”
在“将 Web 应用程序扩展到其他 IIS 网站”中选择新建IIS网站,并选择一个新的端口号:8001;
打开允许匿名访问,并设定负载均衡的URL为MOSS:8001; 区域选“INTERNET”(或其它的也行,主要是为后面的验证程序用)
WEB应用扩展应该来说就是同一个数据库的不同访问方式,但是网站物理文件的位置是独立的,如果在原网站上做的一些自定义功能,扩展后要重新部署,系

统并不会自动地将自定义功能也一并“扩展”.
3、配置验证提供程序
在“管理中心 > 应用程序管理 > 验证提供程序

”中选择MOSS应用程序,会看到有两行提供者,一个是“默认”一个是“INTERNET",PROVIDER都是WINDOWS;
选择INTERNET进行修改;
在“管理中心 > 应用程序管理 > 验证提供程序 > 编辑验证”中,将验证类型改为“表单”,勾上“启用匿名访问”,并在成员身份提供程序名称中填上“

AspNetSqlMembershipProvider”,在角色管理器名称中填上“AspNetSqlRoleProvider”

现在进入8000和8001网站就是一个是AD用户认证,一个是表单身份认证;
4、修改WEB.CONFIG文件
  打开8001和8000网站的WEB.CONFIG文件,位置可以从IIS中找到;
  加入connectionStrings、membership和roleManager节,其中connectionStrings写在中,membership和roleManager写在

m.web>中,具体写法如下:


connectionString="Data Source=数据库服务器IP;
   Initial Catalog=数据库名;
   User ID=访问者名称;
   Password=访问者口令"
providerName="System.Data.SqlClient" />

  connectionStrings节的作用是建立一个联接数据库的字符串;
  membership,rolemanager定义了提供者的信息,要注意的是,.net 2.0中提供者的类型是SqlProvider,而MOSS中改成了System.Web.Security.SqlMembershipProvider
  applicationName要填写正确的应用程序名称;

     
       
        applicationName="应用程序名称"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="true"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="1"
minRequiredNonalphanumericCharacters="0"
name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider" />
     

   


  
    
applicationName="应用程序名称"
name="AspNetSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider,
   System.Web,
   Version=2.0.0.0,
   Culture=neutral,
   PublicKeyToken=b03f5f7f11d50a3a"/>


  修改了WEB.CONFIG文件后,可以实现了双认证方式的访问;
5、给表单认证用户授权
  在“管理中心 > 应用程序管理 > Web 应用程序的策略 ”中添加用户,选择“internet”区域,增加表单认证的用户,并选择“完全控制”;
6、启用匿名访问;
  用刚才的表单认证用户名称登录8001网站,在“网站设置 > 权限 > 匿名访问 ”中选择“整个网站”;

二、建立单一的表单认证;

  按说单一的表单认证应该和上述的方法一样,关键就是WEB.CONFIG文件要修改正确,但是我原样做了几遍后,登录页面是出来了,但是就是不能登录,现在还不清楚是什么原因,上网查了一些资料,都是做的双认证的方式。是不是MOSS就不支持单一的表单认证呢?再想想吧,看过几天能不能搞好。
********

(2007-07-06)昨天把单一表单认证的问题搞好了,操作的办法和双认证是一样的。

1、建立一个新的WEB应用程序;

2、在此WEB APP下建一个首要网站;

3、在管理中心中修改认证方式为匿名和表单认证;

4、修改网站的WEB.CONFIG文件(如上);

5、此时网站就可以登录了,但是登录的用户没有任何权限;

6、将管理中心的WEB.CONFIG也作同样修改(将PROVIDER的定义加入);

7、在管理中心的策略中加上认证用户为所有者;

8、现在可以登录到网站了,并在“人员”中加上其它用户。

(AD版,自己动手做的,其实差别只有一点,就是改变系统的membership-Provider,呵呵。用AD作为membership-Provider的好处就是,和企业原来的AD用户相一致,不用一份用户在AD中,一份用户在SQL数据库中,不管是外网认证还是内网认证都是同一套用户,为以后的系统统一身份认证作准备。)


   
       
   

   
       
       
               
           
             
           

       

       

阅读(1422) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~