對於位於ISV目錄中的自定義ASPX頁面,從後臺代碼獲取當前登錄的MS Dynamics用戶身份的建議方法是什麼?Microsoft Dynamics 4.0自定義ASPX頁面身份
這樣做的方法必須與Dynamics是否使用AD/NTLM身份驗證或其他身份驗證機制無關,並且不得要求啓用模擬或更改web.config。
感謝
對於位於ISV目錄中的自定義ASPX頁面,從後臺代碼獲取當前登錄的MS Dynamics用戶身份的建議方法是什麼?Microsoft Dynamics 4.0自定義ASPX頁面身份
這樣做的方法必須與Dynamics是否使用AD/NTLM身份驗證或其他身份驗證機制無關,並且不得要求啓用模擬或更改web.config。
感謝
您可以通過CRM Web服務執行WhoAmIRequest得到來自CRM數據庫systemuserid
,然後通過crmservice.Retrieve()
得到systemuser
記錄。只要用戶有任何CRM安全角色分配,WhoAmIRequest
和閱讀自己的systemuser
記錄應始終有效。
使用XRM語境與SDK
public Xrm.systemuser CurrentUser {
get
{
var context = new XrmDataContext();
var reponse = context.UsingService(
service => (WhoAmIResponse)service.Execute(new WhoAmIRequest()));
return (from user in context.systemusers
where user.systemuserid == reponse.UserId
select user).Single();
} }
或Web服務(稱爲 'CRM' 在這裏)
public systemuser CurrentUser
{
get
{
WhoAmIRequest userRequest = new WhoAmIRequest();
WhoAmIResponse current = (WhoAmIResponse)crm.Execute(userRequest);
return (systemuser)crm.Retrieve(EntityName.systemuser.ToString(), current.UserId, new AllColumns());
}
}