亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C/Go 中的 LDAP:嘗試設置 unicodePwd 時出現錯誤代碼 53“服務器不愿意執行”

C/Go 中的 LDAP:嘗試設置 unicodePwd 時出現錯誤代碼 53“服務器不愿意執行”

Go
呼如林 2021-11-15 16:07:39
所以我正在用 Go 編寫一個程序,由于 CGo,我使用了 C 綁定,并且我正在使用 ldap 來執行搜索、添加和修改操作。我可以設法做到這一切,但現在我試圖在 unicodePwd mod_type 中設置密碼,但我似乎無法解決錯誤 53:服務器不愿意執行。我知道很多東西都會導致這個錯誤,所以:我與 ldaps 連接。為了測試目的,我硬編碼了一個由 10 個字符組成的密碼,開頭和結尾都帶有雙引號,并在 UTF-16LE、Base64 中得到了它。密碼有小寫字母、大寫字母和標點符號。這是我的一些代碼示例,我現在只是在測試東西,所以編碼真的很糟糕:設置選項:C.ldap_set_option(l, LDAP_OPT_PROTOCOL_VERSION, unsafe.Pointer(&version))C.ldap_set_option(l, LDAP_OPT_REFERRALS, unsafe.Pointer(&v))初始化:C.ldap_initialize(&l, C.CString("ldaps://**.**.**.**:636"))捆綁:rc := C.ldap_simple_bind_s(l, C.CString("CN=Administrator,CN=Users,DC=intra,DC=localdomain,DC=com"), C.CString("**********"))現在是重要的部分,添加一個帶有密碼的用戶:add_user(l, "ldaps://**.**.**.**", "636", "CN=Administrator,CN=Users,DC=intra,DC=localdomain,DC=com", "OU=*******,DC=intra,DC=localdomain,DC=com")func add_user(l *C.LDAP, host string, port string, login string, container string) {var mods [5]*C.LDAPModStrvar modClass, modCN, modSN, modPass C.LDAPModStrvar vclass [5]*C.charvar vcn [4]*C.charvar vsn [2]*C.charvar vpass [2]*C.charmodClass.mod_op = 0modClass.mod_type = C.CString("objectclass")vclass[0] = C.CString("top")vclass[1] = C.CString("person")vclass[2] = C.CString("organizationalPerson")vclass[3] = C.CString("User")vclass[4] = nilmodClass.mod_vals = &vclass[0]modCN.mod_op = 0modCN.mod_type = C.CString("cn")vcn[0] = C.CString("john")vcn[1] = nilmodCN.mod_vals = &vcn[0]modSN.mod_op = 0modSN.mod_type = C.CString("sn")vsn[0] = C.CString("mclane")vsn[1] = nilmodSN.mod_vals = &vsn[0]modPass.mod_op = 0modPass.mod_type = C.CString("unicodePwd")vpass[0] = C.CString("IgBTAHcAZQBlAHQATgBlAHcAUAB3AGQAMQAyADMAIQAiAA==")vpass[1] = nilmodPass.mod_vals = &vpass[0]mods[0] = &modClassmods[1] = &modCNmods[2] = &modSNmods[3] = &modPassmods[4] = nil我可能在這里遺漏了一些明顯的東西,因為我對 GO 和 LDAP 有點陌生,但是如果您能幫我解決這個問題,我將不勝感激。我不知道這是否相關,但程序連接到 Windows Server 2012 R2 的 Active Directory,它在虛擬機中的同一臺計算機上運行。另外,我是這里的新手,如果對您來說更容易,我可以在此處發布我的所有代碼,但我認為僅發布重要步驟可能會更好。
查看完整描述

1 回答

?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

我不知道是否有人會感興趣,但我在@kostix 的幫助下找到了一個解決方案,我想我會分享:C 中的擴展修改操作(使用 CGO)不起作用,但是使用一個簡單的修改操作使用正確編碼的 go-ldap 允許我在 Windows AD 上更改用戶密碼。


查看完整回答
反對 回復 2021-11-15
  • 1 回答
  • 0 關注
  • 392 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號