使用jsp的Windows身份验证和电子邮件地址检索

使用jsp的Windows身份验证和电子邮件地址检索,windows,jsp,email,authentication,waffle,Windows,Jsp,Email,Authentication,Waffle,我正在尝试使用第三方库“华夫格”实现windows身份验证。我面临的挑战是,如果我们知道用户id和域,如何检索用户的邮件id。例如,我可以获取用户Id为XYZ\phembr,并且我想要获取邮件地址(phembrom@xyz.com在本例中)从SMTP服务器。下面是我正在使用的jsp代码和得到的输出 <%@page import="java.security.Principal" %> <%@page import="waffle.windows.auth.WindowsAcc

我正在尝试使用第三方库“华夫格”实现windows身份验证。我面临的挑战是,如果我们知道用户id和域,如何检索用户的邮件id。例如,我可以获取用户Id为XYZ\phembr,并且我想要获取邮件地址(phembrom@xyz.com在本例中)从SMTP服务器。下面是我正在使用的jsp代码和得到的输出

<%@page import="java.security.Principal" %>

<%@page import="waffle.windows.auth.WindowsAccount" %>

<%@page import="waffle.servlet.WindowsPrincipal" %>

<%@page import="com.sun.jna.platform.win32.Secur32" %>

<%@page import="com.sun.jna.platform.win32.Secur32Util" %>

<%

if (request.getParameter("logoff") != null) {

session.invalidate();

response.sendRedirect("index.jsp");

return;

}

%>

<html>

<head>

<title>Protected Page for Examples</title>

</head>

<body bgcolor="white">

Welcome <b><%= Secur32Util.getUserNameEx(Secur32.EXTENDED_NAME_FORMAT.NameDisplay)   %></b>    <br>

You are logged in as remote user <b><%= request.getRemoteUser() %></b> in session <b><%= session.getId() %></b>.<br>

You are impersonating user <b><%= Secur32Util.getUserNameEx(Secur32.EXTENDED_NAME_FORMAT.NameSamCompatible) %> </b>.

<br><br>

<%

if (request.getUserPrincipal() != null) {

%>

Your user principal name is <b><%= request.getUserPrincipal().getName() %></b>.<br>



Your email is <b><%= Secur32Util.getUserNameEx(Secur32.EXTENDED_NAME_FORMAT.NameUserPrincipal) %></b>.



<br><br>

<%

 } else {

%>

 No user principal could be identified.

 <br><br>

<%

}

%>

 </body>

常见问题解答对此进行了解答:

您不能直接使用华夫格来完成此操作。在Windows上,可以通过使用ADSI查询Active Directory来完成此操作。这涉及通过从登录中获得的SID来定位用户记录,并获取任何附加信息

两种实现方式:


常见问题解答对此进行了解答:

您不能直接使用华夫格来完成此操作。在Windows上,可以通过使用ADSI查询Active Directory来完成此操作。这涉及通过从登录中获得的SID来定位用户记录,并获取任何附加信息

两种实现方式:

Welcome Prashant Kumar Hembrom

You are logged in as remote user XYZ\phembr in session DB5376CCEF5FA13F6059AC679F0B95BE.

You are impersonating user XYZ\phembr .



Your user principal name is XYZ\phembr.

Your email is phembr@xyz.com.