问题有4个
1.点击登陆页面后,出现"拒绝访问"字样,并同时显示"登陆用户为***".
2.点击登陆页面后,没有任何反映,还是原来页面.
3.外网运行网站,提示"文件不存在".
4.点击登陆页面后,验证通过,但指向了不存在页面,出现403错误.
这些问题都是Forms 验证过程中会遇到的,解决方法如下
一. 检查数据库中是否存在该用户
在 aspnetdb 数据库中,看看该用户是否存在.
二, 检查web.config是否配置正确.
在 configuration 节点下添加
在 configuration -> system.web节点下添加
注意 <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">.
将上述 xml,添加到网站,扩展网站,和管理中心网站的web.config中.
三.添加权限
在 管理中心 > 应用程序管理 > 验证提供程序 配置完成后, 进入 管理中心 > 应用程序管理 > Web 应用程序的策略 中,为应用程序添
加Form认证用户,如果这时提示 用户不存在,代表web.config有问题,或者 "验证提供程序" 那里没有配置.
在 管理中心 > 应用程序管理 > 网站集所有者 为网站管理集配置Form用户,如果这时提示 用户不存在,代表web.config有问题.(一般情
况是管理中心web.config中忘配置了)
用 AD帐户登陆站点,在"人员和组"中, 为站点配置 Forms认证用户相关权限.如果这时提示 用户不存在,代表web.config有问题.
四.重启IIS.测试.
五.如果还不行,回想一下该网站是不是当点击域名时系统自动生成的,如果这样,建议删除该程序集,再在 管理中心 > 应用程序管理 > 创建->网站集 中手动创建新的程序集(因为系统自动生成的网站对Forms验证支持不好),然后再对相关权限进行配置,如第三步.
六.如果出现 点击登陆页面后,验证通过,但指向了不存在页面,出现403错误.很可能是该站点同时也是配置SSP所用的宿主站点.貌似SSP宿主站点对Form验证不是很支持(书上没这么说,但我确实遇到了,也许比较菜吧).我的做法是重新建一个web应用,在新建的应用上打建网站,而不是用宿主web应用.
七.如果在其他机子上进入登陆页面,提示"文件不存在".可能是由于修改了该web应用程序的某个子站,或者顶级站.应该重新在 管理中心 >
应用程序管理 > 验证提供程序 配置.
最后给出一个完全清晰图解配置Forms 验证的博文
http://blog.blueshop.com.tw/angi/archive/2006/12/02/45954.aspx (上篇)
http://blog.blueshop.com.tw/angi/archive/2006/12/09/46636.aspx (下篇)