SAP LOGON DATA CHECK

本文介绍了一种SAP系统的登录验证方法,通过自定义函数ZUSER_CHECK_LOGON_DATA实现对用户名和密码的有效性检查,并提供了详细的ABAP代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前有朋友做过RFC登录验证,后来群里又有很多人问SAP的登录验证函数。

后来自己找找了,看看了,然后改写了一个LOGON DATA CHECK。。。

FUNCTION ZUSER_CHECK_LOGON_DATA.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(BNAME) LIKE  RSYST-BNAME DEFAULT SY-UNAME
*"     VALUE(PASSWORD) LIKE  RSYST-BCODE OPTIONAL
*"  EXPORTING
*"     VALUE(MESSAGE) TYPE  STRING
*"----------------------------------------------------------------------
  DATA: PWDSTATE TYPE XUPWDSTATE.
  CALL 'INTERNET_USER_LOGON'      ID 'AUTHTYPE'  FIELD 'P'   "password
                                  ID 'TESTMODE'  FIELD SPACE
                                  ID 'UNAME'     FIELD BNAME
                                  ID 'PASSW'     FIELD PASSWORD
                                  ID 'PASSFLAG'  FIELD PWDSTATE.

  CASE SY-SUBRC.
    WHEN 0 OR 4.
      MESSAGE = 'Correct!'.
    WHEN 1.
      MESSAGE = 'user / password incorrect!'.
    WHEN 2.
      MESSAGE = 'user locked!'.
    WHEN 3.
      MESSAGE = 'STOP_SESSION!'.
    WHEN 6.
      MESSAGE = 'CUA master record!'.
    WHEN 7.
      MESSAGE = 'bad_user_type (not DIALOG type)!'.
    WHEN 8.
      MESSAGE = 'outside validity!'.
    WHEN 10.
      MESSAGE = 'SNC required!'.
    WHEN 50.
      MESSAGE = 'password disabled'.
    WHEN 51.
      MESSAGE = 'initial pwd expired'.
    WHEN 52.
      MESSAGE = 'user has no password!'.
    WHEN 52.
      MESSAGE = 'password will not be evaluated since there have been too many failed password logon attempts!'.
    WHEN OTHERS.
  ENDCASE.




ENDFUNCTION.

 

转载于:https://www.cnblogs.com/sapSB/p/6196248.html

### SAP Logon 使用指南与问题解决 SAP LogonSAP 提供的一个客户端工具,用于连接和访问 SAP 系统。它支持多种连接方式,包括经典 GUI 模式、Web 模式以及通过 SNC(Secure Network Communication)的安全连接。以下是 SAP Logon 的使用指南与常见问题的解决方法。 #### 使用指南 1. **安装与配置** 安装 SAP GUI 后,SAP Logon 会自动安装。启动 SAP Logon 后,用户可以通过“新建”按钮添加新的连接配置。在连接设置中,需要输入系统名称、客户端编号、语言、用户名称等信息。对于需要安全连接的场景,可以启用 SNC 并指定 SNC 名称与安全库路径 [^3]。 2. **Logon Group 配置** 在多服务器环境中,Logon Group 可用于负载均衡和高可用性。通过事务码 SMLG,可以创建和管理 Logon Group,并将多个应用服务器加入到组中,同时设置每个服务器的优先级。这样,用户在登录时可以自动连接到最优的应用服务器 [^2]。 3. **使用 Logon Ticket 实现 SSO** 对于需要跨系统访问的场景,SAP 支持通过 Logon Ticket 实现单点登录(SSO)。用户首次登录时,系统会生成一个带有数字签名的 Logon Ticket,并存储在浏览器中。当用户访问其他受信任的 SAP 系统时,该 Ticket 会被自动验证,从而实现无需重复输入用户名和密码的无缝登录体验 [^1]。 4. **脚本自动化登录** 对于需要频繁登录特定系统的用户,可以通过批处理脚本实现快速登录。例如,使用 `sapshcut.exe` 命令行工具并传入用户名、密码、系统参数等,即可快速启动 SAP GUI 并自动登录到目标系统 [^5]。 #### 常见问题与解决方法 1. **SAP Logon 无法正常启动** 如果 SAP Logon 启动失败,可能是由于注册表项 `CoreLandscapeFileOnServer` 指向的配置文件路径错误。可以通过修改注册表,将该值更改为正确的 `SAPUILandscape.xml` 文件路径,然后重新启动 SAP Logon [^4]。 2. **连接失败或系统无法识别** 确保输入的系统名称、客户端编号和语言设置正确。同时,检查网络连接是否正常,并确认目标 SAP 系统正在运行。如果使用了 SNC,还需要验证 SNC 名称格式是否正确,以及安全库路径是否配置正确 [^3]。 3. **Logon Ticket 验证失败** 如果 SSO 无法正常工作,可能是由于 Logon Ticket 的签名验证失败。需要检查生成 Ticket 的系统是否为受信任的源,并确保所有系统之间的时间同步和信任关系配置正确 [^1]。 4. **自动化脚本执行失败** 如果使用 `sapshcut.exe` 进行自动化登录失败,可能是由于路径错误或参数格式不正确。确保 `sapshcut.exe` 的完整路径正确无误,并且所有参数(如用户名、密码、系统编号)均以正确的格式传递 [^5]。 ```batch "D:\SAP GUI\SAPGUI\sapshcut.exe" -user=YOUR_USER -pw=YOUR_PASSWORD -language=en -SYSTEM=DEV -CLIENT=110 -sysname=YOUR_SYSNAME -maxgui ``` #### 相关问题 1. 如何在 SAP Logon 中配置 SNC 以实现安全连接? 2. SAP Logon Group 的作用是什么?如何通过 SMLG 进行配置? 3. 如何通过批处理脚本实现 SAP Logon 的自动化登录? 4. SAP Logon 启动失败时应如何排查和修复? 5. 在实现 SSO with Logon Ticket 时,如何确保跨系统的信任关系正确建立?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值