当前位置:编程学习 > C#/ASP.NET >>

关于混合windows验证和forms验证的问题

最近做一个项目 要求实现混合windows验证和forms验证
按照http://msdn.microsoft.com/en-us/library/ms972958.aspx的做法实现了
流程如下:
1.整个站点被设置为允许匿名登录

2.在web.config里面设置验证方式为forms验证
<authentication mode="Forms">
<forms loginUrl="WinLogin.aspx"/>
</authentication>

3.在IIS里把WinLogin.aspx的匿名登录去掉,只保留集成widows验证。

4.在IIS里设置customer errors,把所有的401错误都转向自己写的Redirect401.htm
在Redirect401.htm里自动跳转到Login.aspx

如果用户在域内访问的话,不需要做任何验证就能进入站点首页。
当用户在域外访问该站点时,会自动弹出winows验证的窗口,要求填写用户名和密码。
如果连续3次验证失败或者直接点击取消的话,会引发401错误,转到Login.aspx。

我现在想做到的是:当用户在外网访问的时候,不弹出winows验证的窗口,直接跳转到Login.aspx。
不知道各位大虾有何良策? --------------------编程问答-------------------- 要把匿名访问打开才能不弹出窗口.
这个没什么好办法.
--------------------编程问答-------------------- 可以这样,

在iis建两个网站,一个给外面用,一个给内部用户用.
外面那个绑定外网的域名,这样就可以了.
--------------------编程问答-------------------- 数据库用同一个
--------------------编程问答-------------------- 这个和数据库没什么关系

程序想实现的是:域内的用户不用登陆就能进入站点首页,域外的用户需要填写用户名密码才能进入站点首页。
打开站点的时候会启用winlogin.aspx进行验证,因为winlogin.aspx是基于windows验证的,因此域内的用户可以通过此验证,直接进入站点首页。域外的用户打开站点就会看到windows验证的弹出窗要求输入用户名密码,点击取消会引发401错误,被转到Login.aspx。我现在就是想略过这一步,域外的用户打开站点时直接引发401错误转到Login.aspx。 --------------------编程问答-------------------- 你转到login.aspx还是401错误,

所以我的建议还是建两个网站,程序数据库都用一套,只是接入不同,我觉得这是目前最好的方式了.
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,