sharePoint2007 Forms 验证登陆 拒绝访问(Access Denied) 相关问题解决方案(转)

问题有4个

 1.点击登陆页面后,出现"拒绝访问"字样,并同时显示"登陆用户为***".
 2.点击登陆页面后,没有任何反映,还是原来页面.
 3.外网运行网站,提示"文件不存在".
 4.点击登陆页面后,验证通过,但指向了不存在页面,出现403错误.

 这些问题都是Forms 验证过程中会遇到的,解决方法如下
 
 一. 检查数据库中是否存在该用户
     在 aspnetdb 数据库中,看看该用户是否存在.
 二, 检查web.config是否配置正确.
    
     在 configuration 节点下添加
    view plaincopy to clipboardprint?
<connectionStrings> 
     <remove name="AspNetSqlProvider" /> 
    <add name="AspNetSqlProvider" connectionString="server=服务器名; database=aspnetdb; Trusted_Connection=True" /> 
   </connectionStrings> 
  <connectionStrings>
       <remove name="AspNetSqlProvider" />
      <add name="AspNetSqlProvider" connectionString="server=服务器名; database=aspnetdb; Trusted_Connection=True" />
     </connectionStrings>
    
     在 configuration -> system.web节点下添加


       view plaincopy to clipboardprint?
<membership defaultProvider="AspNetSqlMembershipProvider"> 
      <providers> 
        <remove name="AspNetSqlMembershipProvider" /> 
        <add connectionStringName="AspNetSqlProvider" passwordAttemptWindow="10" enablePasswordRetrieval="false"   
 
enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false"   
 
passwordFormat="Hashed" description="Stores and retrieves membership data from the Microsoft SQL Server database"   
 
name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0,   
 
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
      </providers> 
    </membership> 
    <!--Role Provider--> 
    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"> 
      <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> 
<membership defaultProvider="AspNetSqlMembershipProvider">
      <providers>
        <remove name="AspNetSqlMembershipProvider" />
        <add connectionStringName="AspNetSqlProvider" passwordAttemptWindow="10" enablePasswordRetrieval="false"

enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false"

passwordFormat="Hashed" description="Stores and retrieves membership data from the Microsoft SQL Server database"

name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0,

Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
    </membership>
    <!--Role Provider-->
    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
      <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>

  
    注意 <roleManager enabled="true"   defaultProvider="AspNetWindowsTokenRoleProvider">.
    将上述 xml,添加到网站,扩展网站,和管理中心网站的web.config中.
 三.添加权限
    在管理中心 > 应用程序管理 > 验证提供程序 配置完成后, 进入 管理中心 > 应用程序管理 > Web 应用程序的策略 中,为应用程序添加Form认证用户,如果这时提示 用户不存在,代表web.config有问题,或者 "验证提供程序" 那里没有配置.
    在 管理中心 > 应用程序管理 > 网站集所有者 为网站管理集配置Form用户,如果这时提示 用户不存在,代表web.config有问题.(一般情况是管理中心web.config中忘配置了)

特别说明:

管理中心站点:即SharePoint 3.0 管理中心管理页,而不是其它网站集,此站点可能在IIS目录下(SharePoint Central Administration v3)查看路径,一定要注意。

打开管理中心站点所在路径(如我这里是C:\Inetpub\wwwroot\wss\VirtualDirectories\35784,你可以打开IIS找到管理中心站点的物理路径)修改其下的Web.config文件.


    用 AD帐户登陆站点,在"人员和组"中, 为站点配置 Forms认证用户相关权限.如果这时提示 用户不存在,代表web.config有问题.
 四.重启IIS.测试.

 五.如果还不行,回想一下该网站是不是当点击域名时系统自动生成的,如果这样,建议删除该程序集,再在 管理中心 > 应用程序管理 > 创建->网站集 中手动创建新的程序集(因为系统自动生成的网站对Forms验证支持不好),然后再对相关权限进行配置,如第三步.

 六.如果出现 点击登陆页面后,验证通过,但指向了不存在页面,出现403错误.很可能是该站点同时也是配置SSP所用的宿主站点.貌似SSP宿主站点对Form验证不是很支持(书上没这么说,但我确实遇到了,也许比较菜吧).我的做法是重新建一个web应用,在新建的应用上打建网站,而不是用宿主web应用.

 七.如果在其他机子上进入登陆页面,提示"文件不存在".可能是由于修改了该web应用程序的某个子站,或者顶级站.应该重新在 管理中心 >

应用程序管理 > 验证提供程序 配置.

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/smysky/archive/2009/03/31/4039447.aspx

posted @ 2011-04-25 18:14  贝加  阅读(697)  评论(0编辑  收藏  举报