我的问题是这样的:整个application,我采用了Integrated Windows Authentication,但是在一篇管理用的Admin page,上面有一个datagrid,每条记录都有一个button,用来表示close这条记录。当管理员点击button的时候,就会打开DocumentCollect.aspx,而这篇采用basic authentication,需要不同的用户提供Active Directory的用户密码来确认,表示他承认自己的确拿到这个文件,之后就自动关闭该弹出页面。但是问题出现了,当管理员在Admin.aspx上第一次点击button,弹出DocumentCollect.aspx的时候,用户登录确认然后自动关闭该页面,没有问题。可是如果管理员第二次点击不同的button,此时弹出页面就不需要登录,自动采用了前面的用户信息,我想因为是同一个浏览器窗口,所以之前basic authentication已经记录了session,但是这样并不是我要实现的功能。请问各位大侠,拜托帮帮我,想想办法,我实在不知道怎么解决这个问题了,非常非常感谢。拜托各位救救小妹

解决方案 »

  1.   

    很少用集成的Basic验证实在不行 你就自己写一下Basic验证的过程 
    也很简单 就是集成window用户 就不那么简单了
    你也可以操作完之后强制关闭所有窗口
      

  2.   

    太好了,终于有人来回复了可是,foyuan大侠,我不是很明白你说的,怎么自己写basic验证的过程啊,我是菜鸟来的,不好意思对了,顺便说一下,我不是要做成一个login page,然后让用户输入用户名和密码,然后去Active Directory再判断。因为由于安全性问题,要求不能在我们的application去capture用户的AD登录信息。我现在的问题就在于仅仅是一个page的basic authentication,如何做到每次都强制弹出登录框。强烈要求foyuan大侠提供详细一点的代码,非常非常非常感谢
      

  3.   

    Response.StatusCode = 401;
    Response.Status = "401 Authorization Required";
    Response.AddHeader("WWW-Authenticate", "Basic realm=\"require authenticate\"");这样就可以发起一个basic验证然后用户输入用户和密码
    string auth = Request.Headers["Authorization"];auth就会得到一个字符串 Basic xxxxxxx
    xxx表示base64编码的 用户名:密码
    你用base64解码就OK了具体的验证你自己写吧集成window用户 也没有弄过,你自己试试我也比较菜,不敢称什么大虾 呵呵