1.在用Secure Store Service获取用户信息之前需要配置SSS。
2.以下代码是获取用户信息:
using (SPSite site = new SPSite(webUrl)) { SecureStoreProvider prov = new SecureStoreProvider(); SPServiceContext context = SPServiceContext.GetContext(site); prov.Context = context; //current user information try { SecureStoreCredentialCollection cc = prov.GetCredentials(appId); for (int i = 0; i < cc.Count; i++) { ISecureStoreCredential c = cc[i]; IntPtr ptr = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(c.Credential); string sDecrypString = System.Runtime.InteropServices.Marshal.PtrToStringUni(ptr); credentialList.Add(sDecrypString); } } catch (Exception ex) { throw ex; }
注意:有的时候会在上图红线的地方报错:Secure Store Service did not performed the operation
造成这里的原因是我们的
SPServiceContext context = SPServiceContext.GetContext(site)的site我们用的SPContext.Current.Site.所以将此处的代码修改成如上
using (SPSite site = new SPSite(webUrl))就可以正常解决。