求教:
   url中包含指定页面的地址,点击后,如果系统已经登陆,那么直接调整到url的页面,如果没有登陆,先进行登录,成功后跳转到url中的页面。
   如何实现这个需求?需求背景:
    审批流程中,系统给待审批人员,发送邮件,邮件中包含链接,类似
http://localhost:23198/AMS/Login.aspx?ReturnUrl=%2fAMS%2fPurchaseManagement%2fEP_Apply_Approve.aspx%3fgn%3d%25e9%25a2%2586%25e7%2594%25a8%25e5%25ae%25a1%25e6%2589%25b9%26gnz%3d%25e8%25b5%2584%25e4%25ba%25a7%25e9%25a2%2586%25e7%2594%25a8%26mk%3dMK-01%26gn_bm%3dGN-W16&gn=%e9%a2%86%e7%94%a8%e5%ae%a1%e6%89%b9&gnz=%e8%b5%84%e4%ba%a7%e9%a2%86%e7%94%a8&mk=MK-01&gn_bm=GN-W16
    直接点击后,实现上面的需求即可。
     现在我将该链接复制到浏览器中,可以实现上面的效果;如果是通过点击进入的,实现不了这个效果。请高手指教ASP.NET URL登录

解决方案 »

  1.   

    看看邮件的的html是否正确,还有构建的链接是否正确。
      

  2.   

    我问题没有写清楚:
    1)url的格式,应该是什么样的?
    2)登陆页面代码,是否有特需的写法
      

  3.   


    如果直接复制可以,点击却不可以,。
    我怀疑你使用的是Session的方法,Session存在时间可能没设置。你复制到地址栏的时候,你的相关网页没关,你的session还存在,所以可以正常、但是你浏览器关闭的时候,由于session未设置,默认情况下页面关闭,你的session就销毁了,所以才导致点击后不能正常登陆!
      

  4.   

    要么sso,要么在url中将用户信息加密,接收页面判断是否有指定的QueryString,该String符合加密规范,并且解密后能正确的获取相应信息,则后台自动补全用户登录信息
      

  5.   

    自己创建一个登陆令牌(加密串,里面包括用户ID,登陆验证密钥,密钥有限时间)链接的页面,解密,获取里面的信息,根据用户ID获取数据库中的信息进行比对 登陆验证密钥,密钥有限时间,如果正确就创建登陆的Session
      

  6.   

    http://localhost:23198/AMS/PurchaseManagement/EP_Purchase.aspx?gn=%e9%87%87%e8%b4%ad%e7%94%b3%e8%af%b7&gnz=%e8%b5%84%e4%ba%a7%e9%87%87%e8%b4%ad&mk=MK-01&gn_bm=GN-W04
    直接拷贝,复制到浏览器中,不用登录,直接进入。 如果是在 word中,Ctrl+点击,则需要进行登录,并且url变成了:http://localhost:23198/AMS/Login.aspx?ReturnUrl=%2fAMS_EPSON%2fPurchaseManagement%2fEP_Purchase.aspx%3fgn%3d%25e9%2587%2587%25e8%25b4%25ad%25e7%2594%25b3%25e8%25af%25b7%26gnz%3d%25e8%25b5%2584%25e4%25ba%25a7%25e9%2587%2587%25e8%25b4%25ad%26mk%3dMK-01%26gn_bm%3dGN-W04&gn=%e9%87%87%e8%b4%ad%e7%94%b3%e8%af%b7&gnz=%e8%b5%84%e4%ba%a7%e9%87%87%e8%b4%ad&mk=MK-01&gn_bm=GN-W04  添加了returnrul的方式。 如何避免第二种方式的出现?
      

  7.   

    有可能是编码问题,设置一下页面编码
    <meta content="text/html; charset=utf-8" http-equiv=Content-Type>
      

  8.   

    我曾经遇到过,有些文件从word直接Ctrl+点击访问,会出现乱码,但如果重新刷新或从IE打开就没有这个问题
      

  9.   

      判断  session 是否有值、、关于是否登录 用的是 session、   至于跳转的是 也就 session  就行  、在session 存储的 对象 里家个 字段 表示一下就行、