Active directory windows域中的用户名
我正在开发一个应用程序,它使用Jespa进行透明SSO。我正在使用NtlmSecurityProvider。在我的代码中,当我得到如下用户名时:“域名\用户名” e、 gActive directory windows域中的用户名,active-directory,windowsdomainaccount,jespa,Active Directory,Windowsdomainaccount,Jespa,我正在开发一个应用程序,它使用Jespa进行透明SSO。我正在使用NtlmSecurityProvider。在我的代码中,当我得到如下用户名时:“域名\用户名” e、 g 打印:MYDOMAIN\myusername 我的问题是: 域名和用户名总是这样吗?或者这只是我们域中用户帐户的设置方式?比如,如果我切换到另一个windows域,我可能只获得用户名而不使用域和反斜杠吗 谢谢 我在serverfault.com上问了这个问题。斯奎尔曼给了我一个很好的回答。(谢谢!)这是: “这可能更像是J
打印:MYDOMAIN\myusername
我的问题是:
域名和用户名总是这样吗?或者这只是我们域中用户帐户的设置方式?比如,如果我切换到另一个windows域,我可能只获得用户名而不使用域和反斜杠吗
谢谢 我在serverfault.com上问了这个问题。斯奎尔曼给了我一个很好的回答。(谢谢!)这是: “这可能更像是Jespa人员的支持问题。输出依赖于他们API的行为 不过,一般来说,Windows的最佳实践是始终使用域\用户名格式或username@domain格式 如果您担心格式的变化,那么我建议您编写一个类/方法/实用程序,它知道如何解析getRemoteUser()的结果,并在您认为必要时将部分返回到您的应用程序。如果它确实发生了变化,您只需更改一段代码即可修复您的应用程序。”
我像他建议的那样编写了一个方法来解析getRemoteUser()的结果,到目前为止它工作得很好 这是高度可配置的。请参阅Jespa操作手册中NtlmSecurityProvider属性部分的account.canonicalForm属性。您可以将用户名设置为BUSICORP\sbackus或sbackus@busicorp.local或者只是sbackus或者浏览器提供的任何东西(没有规范化) 例如,如果希望getRemoteUser仅返回HttpSecurityService属性文件中的用户名,而不返回域集jespa.account.canonicalForm=2。但在多域环境中,使用限定的帐户名可能非常重要
<% out.println(request.getRemoteUser()); %>