日期:2014-05-18  浏览次数:20445 次

200分去自定义登陆验证模块的解决方案.帮忙呀.脑细胞死光了,都想不出来好方法

asp.net有4种认证方式
1.windows
2,form
3:passport
4:None
现在的要求是
1:我的程序有两个一样的登陆页面(什么都一样),暂且叫 "login1.aspx "和 "login2.aspx ".我想达到的效果是,当用登陆 "login1.aspx "进行登陆时,我希望能以windows集成身份验证登陆,就是不需要输入用户名和密码,直接用windows用户名登陆程序;当我用 "login2.aspx ",希望用户能用form的验证方式,就是用户必须自己输入用户名和密码才能登陆系统.

综合起来,感觉就是需要要设计一个自定义的验证模块,但是我没有头绪,请高手指点.


------解决方案--------------------
这两种方式怎么样设置呢?即如何切换?切换时是需要修改web.config的,不是用户访问哪个就用哪种方式吧?
------解决方案--------------------
比如我设置了login1.aspx是启动页, ==> 怎么设置?在哪里设置?iis? web.config?。如果用户直接访问login2.aspx怎么办?
------解决方案--------------------
up
------解决方案--------------------
web应用程序的验证方式对不同用户是固定的。即所有用户只能同时使用一种验证模式。 如果你要分开的话,只能用自己的方式。
------解决方案--------------------
对不需要 Forms 验证的页面、文件夹, 在 web.config 进行配置


事实上 Forms 验证也是基于 cookie 的验证,并使用 httpmodelue 实现,

你完全可以自己开发自己 HttpModule 实现身份验证


------解决方案--------------------
UP..学习.
------解决方案--------------------
UP..学习.

------解决方案--------------------
这不需要两中验证模式。 只是从哪里取用户名的问题。 login.aspx取windows的用户名密码。 lgoin2.aspx取用户输入的用户名密码到数据库中验证 是这相意思?
------解决方案--------------------
用form就行了..让用户都登陆第一次,把Cookie设置永久...这不就得了?
反正菜鸟也不懂得怎么删除Cookie的...

------解决方案--------------------
学习!
------解决方案--------------------
用windows集成身份验证,然后在httpmoudle中检查一个特定的cookie,看是不是存在一个特定的cookie

------解决方案--------------------
支持FORM验证,然后设置COOKIE为永久
------解决方案--------------------
.他们觉得直接打开页面就用自己电脑系统的用户名登陆系统直接到default.aspx页面(他们电脑的用户是已经存在程序的用户数据库里了).

============

那么,你理解错了,你说的这个并不是 Windws 集成验证

所谓,Windws 集成验证,是用的服务器的系统帐号来等于的,

IIS 中启用的匿名用户访问,其实就是用 一个服务器的 Windows 帐号,通常格式为 IUSER_机器名

显然,你说的,还是一种自定义身份验证,只是用户的用户名刚好是他们自己本地系统的用户,

你的系统在企业网内?工作组?否则,此种策略(用用户机器的帐号)个实现起来并不现实

假如希望用户登陆一次之后,以后不需要再此登录,那么你提供一项功能让其可以选择是否记登录,将用户的信息存入 cookies ,这是最常见的,也是就简单的

当然,你还可以获取其的用户标识,如 IP(对局域网访问公网来说无效),MAC 地址等硬件信息,但是,后两者都需要客户端插件的支持,否则无法获取(IP不需要)
------解决方案--------------------
有一个问题,就是,如果要用客户的windows的用户名和密码是需要用户输入系统用户名和密码的, 即要禁止匿名访问,那么,如果管理人员要进入login2.aspx时,也要先输入用户名,密码(windows)的, 再输入数据库的用户名和密码(即要2次验证)
------解决方案--------------------
这个其实就是windows的域的验证
------解决方案--------------------
有一个问题,就是,如果要用客户的windows的用户名和密码是需要用户输入系统用户名和密码的,
即要禁止匿名访问,那么,如果管理人员要进入login2.aspx时,也要先输入用户名,密码(windows)的,

再输入数据库的用户名和密码(即要2次验证)


只要使用域就没关系,这个用户如果以前被这个机器验证过,或是曾经验证过,或是被它信任,就不会再出现windows的那种登陆框,事实上Jinglecat说的,你只要把IIS模拟的那个匿名的用户改成那个用户既可.
------解决方案--------------------
login1.aspx 放一个文件夹中 写一个 web.config 配置该文件夹的访问
login2.aspx 放另一个文件夹中 再写一个配置文件
...............................!!!!!
------解决方案--------------------