前言

java web 项目如何获取客户端登录帐号信息(用于SSO或其他)

之前总结过一篇在Java 的Web 项目中获取客户端帐号信息的文章。参见以上链接的内容。

除了那些方式之外, 还可以使用IIS 和VB  来获取客户端域帐号信息。

(这里介绍的使用场景还是在Java web 项目中使用IIS 和VB 的方式来获取域帐号信息。)

实际使用场景

环境状况

1. Java web 项目, 部署在 机器A 的tomcat 上(不在域)

2. IIS 服务器, 在机器B 上(在域上)

3. 客户端机器都在域内,客户端访问Java web 项目.

要实现的功能是:

在Java web 项目中, 可以自动获取客户端的域登录用户名。

实现思路

实现的思路就是使用IIS 和VB ,

web project root url:  http://webprjurl

IIS root url: http://iisrooturl

1. 在IIS 中建立一个  aspx 和 aspx.vb 文件, 用于获取  客户端帐号。

以 response.write 的方式 一个 iframe, src 为 http://webprjurl/ADLoginFrame.jsp?username=XX

2.  在web 项目的jsp 文件中嵌入一个 iframe, iframe 的src 是 以上的IIS的url

http://iisrooturl/getADUser.aspx

3.  在 jsp 的  body  的onload 中, 读取 iframe的src, 解析出  username

特别需要说明的部分:

你可能会问, 在以上步骤 1 中,既然已经取得帐号信息, 是否之间调用iframe parent 的js  是否就可以设置帐号信息了呢?

为什么还要整两个 iframe?

原因是: IIS 和 Web 可能在不同的域下,使用iframe 的parent 的方式就相当于在IIS 中访问tomcat , 涉及到js 的跨域访问,是会别禁止掉的。

所以使用两个iframe 避免跨域访问出现的问题。

实际例子代码:

1.  IIS 中 getADUser.aspx 和 getADUser.aspx.vb

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="getADUser.aspx.vb" Inherits="AdminADUser" %>
Partial Class AdminADUserInherits System.Web.UI.PageProtected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LoadMe.Response.Write("<iframe src='http://webprjurl/ADLoginFrame.jsp?username="+Request.ServerVariables("LOGON_USER")+"'></iframe>")Me.Response.endEnd Sub
End Class

2. Java web 中 ADLoginFrame.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script>
window.onload = function(){var text = window.location.href.split('=')[1]//console.log(parent.parent)parent.parent.setADDomainUser(text);
}
</script>
</head>
<body></body>
</html>

3. Java web 中的  getLoginInfo.jsp

这是调用的主页面, 上面window.onload 中的 parent.parent 对应到的就是这个页面。

<body>
<iframe  id="loginADFrame" src="http://iisurl/getADUser.aspx"></iframe>
</body>

总结

以上方法在IE 和 Chrome 中使用是正常的,但是在firefox 下,会弹出输入域帐号的信息的对话框, 这个问题在之前的一篇也提到过。

获取登录域帐号信息方式之 —-IIS(VB)相关推荐

  1. java web 项目如何获取客户端登录帐号信息(用于SSO或其他)

    前言 在java 中可以通过System 获取操作系统的相关信息. 类似: String sys_user_name = System.getProperty("user.name" ...

  2. 在Linux服务器之间迁移帐号信息

    参考: http://www.cyberciti.biz/faq/howto-move-migrate-user-accounts-old-to-new-server/ 1. 在需要备份的服务器上,将 ...

  3. [分享]C# 获取Outlook帐号和密码

    [分享]C# 获取Outlook帐号和密码 http://www.vjsdn.com/bbs/bbsTopicDetails.aspx?pid=108281214 转载于:https://www.cn ...

  4. sasl java_javaSASL_SSL帐号密码方式访问kafka

    java SASL_SSL 帐号密码 方式访问 kafka Producer Java Sample java生产者: Properties props = new Properties(); pro ...

  5. sasl java_java SASL_SSL 帐号密码 方式访问 kafka

    java SASL_SSL 帐号密码 方式访问 kafka Producer Java Sample java生产者: Properties props = new Properties(); pro ...

  6. 使用Acctinfo.dll了解更多AD用户帐号信息

    说明 Acctinfo.dll是一个动态链接库文件,注册这个动态链接库文件之后,管理员可以通过使用"Active Directory用户和计算机"管理控制台查看用户属性的时候,增加 ...

  7. QQ空间获取指定QQ号信息接口

    论坛好几天没人发帖子了,前几天忙考试了,后来终于挂了,淡定,要淡定. 可能有的朋友们早就在空间抓到了这些接口,不会的一定要自己抓包啊,IE9版本以前的可以用httpwatch,IE9自带抓包软件(快捷 ...

  8. 获取微信公众号信息接口

    西瓜插件里面的一个小接口: https://chromepluginapi.xiguaji.com/InspireCenter/SearchSubscribePopNew?kw=java派大星 kw为 ...

  9. 安卓开放平台帐号信息总结表

    1.应用宝开放平台 网址:http://open.qq.com 2.微信开放平台 网址:https://open.weixin.qq.com/ 4.安智市场开放平台 网址:http://dev.anz ...

最新文章

  1. mvc core2.1 Identity.EntityFramework Core 注册 (二)
  2. iOS9系统下SEGV_ACCERR问题的解决方案
  3. 【论文解读】GCN论文总结
  4. JSP动作和内置对象
  5. Vue-route路由的嵌套使用
  6. 获取2个地址之间的距离(高德API)
  7. 计算机软件技术基础fifo算法,软件技术基础真题
  8. python登录网页账号密码_遇到需要登录的网站怎么办?学好python,用这3招轻松搞定...
  9. 火爆全网的迁移学习简明手册全面更新,重磅出版上市!
  10. 没钱也创业——教你空手道白手创业
  11. 倒置链表(递归方式)
  12. Jquery瀑布流插件
  13. Swing-文本输入组件(一)
  14. C# 读写锁 ReaderWriteLock
  15. php asp网站本地调试,php/asp网站程序本地调试工具
  16. 【Mysql】求两个表(查询结果)的差集
  17. 软件项目管理的重点知识
  18. python、pygame开发的太空大战游戏源代码,供学习参考
  19. 【机器人学】平面2R机器人(六)——MATLAB仿真
  20. 不知道视频画面大小裁剪怎么操作?1分钟教你学会裁剪大小

热门文章

  1. unity---------------------关于BuildAssetBundles的使用(打包)
  2. 【STL】算法 — partial_sort
  3. Asp.Net完美隐藏服务器信息
  4. attribute property --- jquery attr() prop()
  5. 语法糖----C#的async和await
  6. java中的char类型所占空间
  7. python cookbook 学习笔记 -- 1.5 去除字符串两端空格
  8. 再次遇到golang乱码问题,用simplifiedchinese解决
  9. DeepFaceLab报错,CUDA driver is insufficient 解决方法!
  10. 中国产业数字化发展报告:数智创新,智驱未来