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

解决方案 »

  1.   

    这两种方式怎么样设置呢?即如何切换?切换时是需要修改web.config的,不是用户访问哪个就用哪种方式吧?
      

  2.   

    比如我设置了login1.aspx是启动页,也就是说,启动的时候,默认都是windows集成验证,只有当用户自己在浏览器种输入login2.aspx的时候,才采用from登陆验证
      

  3.   

    比如我设置了login1.aspx是启动页,
    ==>
    怎么设置?在哪里设置?iis? web.config?。如果用户直接访问login2.aspx怎么办?
      

  4.   

    首先,客户不会知道有login2.aspx页.这个是经理知道的.也就是说,这个页面只有经理一个人去用.其他人并不会去用.
    假如其他人不小心输入了这个页面,也必须采用form验证
      

  5.   

    只要是从login2.aspx登陆就必须form验证.否则就用window集成验证
      

  6.   

    web应用程序的验证方式对不同用户是固定的。即所有用户只能同时使用一种验证模式。
    如果你要分开的话,只能用自己的方式。
      

  7.   

    对不需要 Forms 验证的页面、文件夹, 在 web.config 进行配置
    事实上 Forms 验证也是基于 cookie 的验证,并使用 httpmodelue 实现,你完全可以自己开发自己 HttpModule 实现身份验证
      

  8.   

    是这样的.因为普通的客户并不想输入用户名和密码才能登陆系统去处理业务.他们觉得直接打开页面就用自己电脑系统的用户名登陆系统直接到default.aspx页面(他们电脑的用户是已经存在程序的用户数据库里了).但是他们的管理人员希望他们用自己的另一个登陆页面,这样就可以用其他员工的用户名登陆.(必须有另一个页面,因为管理员也是直接用自己电脑用户登陆系统,他们要想看其他员工的业务情况,就必须用其他员工的用户登陆,所以才会出现第二个login页面)
      

  9.   

    TO:Jinglecat(晓风残月 >> 问题需简洁,错误要详细)
    对,我就是想开发自己的 HttpModule .但是没有思路.请大家帮忙了
      

  10.   

    这不需要两中验证模式。
    只是从哪里取用户名的问题。login.aspx取windows的用户名密码。
    lgoin2.aspx取用户输入的用户名密码到数据库中验证
    是这相意思?
      

  11.   

    用form就行了..让用户都登陆第一次,把Cookie设置永久...这不就得了?
    反正菜鸟也不懂得怎么删除Cookie的...
      

  12.   

    TO:
    cpp2017(慕白兄) 你一说,有点思路了.
      

  13.   

    用windows集成身份验证,然后在httpmoudle中检查一个特定的cookie,看是不是存在一个特定的cookie
      

  14.   

    支持FORM验证,然后设置COOKIE为永久
      

  15.   

    .他们觉得直接打开页面就用自己电脑系统的用户名登陆系统直接到default.aspx页面(他们电脑的用户是已经存在程序的用户数据库里了).============那么,你理解错了,你说的这个并不是 Windws 集成验证所谓,Windws 集成验证,是用的服务器的系统帐号来等于的,IIS 中启用的匿名用户访问,其实就是用 一个服务器的 Windows 帐号,通常格式为 IUSER_机器名显然,你说的,还是一种自定义身份验证,只是用户的用户名刚好是他们自己本地系统的用户,你的系统在企业网内?工作组?否则,此种策略(用用户机器的帐号)个实现起来并不现实假如希望用户登陆一次之后,以后不需要再此登录,那么你提供一项功能让其可以选择是否记登录,将用户的信息存入 cookies ,这是最常见的,也是就简单的当然,你还可以获取其的用户标识,如 IP(对局域网访问公网来说无效),MAC 地址等硬件信息,但是,后两者都需要客户端插件的支持,否则无法获取(IP不需要)
      

  16.   

    恩.对,我是的windows集成验证比较模糊,其实是指在web.config配置中authentication="widnows"
    ^_^
      

  17.   

    TO:
    Jinglecat(晓风残月 >> 问题需简洁,错误要详细)我现在想到的解决方案是:
    默认form验证,然后在global.cs中进行登陆页面的判断,如果是login1.aspx.直接取windows的用户名,直接设置cookie,通过验证如果是login2.aspx.就是取用户自己输入的用户名和密码,进行验证此方案是看到cpp2017(慕白兄) ,想到的.
    不知道是否可行???
      

  18.   

    TO:
    Jinglecat(晓风残月 >> 问题需简洁,错误要详细)我现在想到的解决方案是:
    默认form验证,然后在global.cs中进行登陆页面的判断,如果是login1.aspx.直接取windows的用户名,直接设置cookie,通过验证如果是login2.aspx.就是取用户自己输入的用户名和密码,进行验证此方案是看到cpp2017(慕白兄) ,想到的.
    不知道是否可行???
      

  19.   

    有一个问题,就是,如果要用客户的windows的用户名和密码是需要用户输入系统用户名和密码的,
    即要禁止匿名访问,那么,如果管理人员要进入login2.aspx时,也要先输入用户名,密码(windows)的,再输入数据库的用户名和密码(即要2次验证)
      

  20.   

    这个其实就是windows的域的验证
      

  21.   

    有一个问题,就是,如果要用客户的windows的用户名和密码是需要用户输入系统用户名和密码的,
    即要禁止匿名访问,那么,如果管理人员要进入login2.aspx时,也要先输入用户名,密码(windows)的,再输入数据库的用户名和密码(即要2次验证)
    只要使用域就没关系,这个用户如果以前被这个机器验证过,或是曾经验证过,或是被它信任,就不会再出现windows的那种登陆框,事实上Jinglecat说的,你只要把IIS模拟的那个匿名的用户改成那个用户既可.
      

  22.   

    login1.aspx 放一个文件夹中 写一个 web.config  配置该文件夹的访问 
    login2.aspx 放另一个文件夹中 再写一个配置文件 
    ...............................!!!!!
      

  23.   

    TO 
    cpp2017(慕白兄) 其实没有你说的问题,就算是windows登陆,window机器的用户名和密码都是数据库中存在的.
      

  24.   

    但是另一个问题
    TO 
    cpp2017(慕白兄) 就是你设置验证方式为Form,你必须为它指定一个default页面,这个会不会有问题?/
      

  25.   

    你必须为它指定一个default页面========这是设置默认登录成功之后转向页面,你可以在登录完成之后显示显示定向目标页面
      

  26.   

    login.aspx  windows认证
    lgoin2.aspx再判断一次就可以了嘛,就是判断一次数据库验证的登录
      

  27.   

    老大都说 只能采用一种验证方式了My-Blog地址1:http://www.cnblogs.com/nyzfl
    My-Blog地址2: http://blog.csdn.net/nyzfl
      

  28.   

    谢谢大家的帮助,首先我觉得这样的验证方式很奇怪,也没有必要,但是没有办法
    我只是个coder.只能去尽量完成任务!实在完不成就8 了