有没有办法以链码形式获得用户的隶属关系? 我找不到在链码中获得用户隶属关系的API。
答案 0 :(得分:0)
请查看core/chaincode/lib中提供的cid lib文档:
// Get the client ID object
id, err := cid.New(stub)
if err != nil {
// Handle error
}
mspid, err := id.GetMSPID()
if err != nil {
// Handle error
}
switch mspid {
case "org1MSP":
err = id.AssertAttributeValue("attr1", "true")
case "org2MSP":
err = id.AssertAttributeValue("attr2", "true")
default:
err = errors.New("Wrong MSP")
}
答案 1 :(得分:0)
联盟是在OU中的证书主题内编码的。 例如,org1.department1用户的主题
'subject': 'CN=33932069-6fce-4b16-8072-6715d591f35b,OU=client+OU=org1+OU=department1,O=Org1'
因此,可以轻松地从链码进行访问
invoker, err := identity.FromStub(c.Stub())
if err != nil {
return nil, err
}
fmt.Printf(invoker.Cert.Subject.OrganizationalUnit)