0
我已經安裝了IS3/MR/IDM組合,一切工作正常。我現在需要做的是讓登錄的用戶(ID,Name等)可用於我的所有MVC控制器,所以顯而易見的選擇是創建一個基本控制器,以便所有其他控制器都從它繼承。跨客戶端應用程序訪問用戶對象
任何人都可以建議,如果這是實現這一目標的最好方法,也許提供一些示例代碼?
我已經安裝了IS3/MR/IDM組合,一切工作正常。我現在需要做的是讓登錄的用戶(ID,Name等)可用於我的所有MVC控制器,所以顯而易見的選擇是創建一個基本控制器,以便所有其他控制器都從它繼承。跨客戶端應用程序訪問用戶對象
任何人都可以建議,如果這是實現這一目標的最好方法,也許提供一些示例代碼?
假設您已經對Identity Server 3進行了成功的身份驗證,則應該已經全部設置好了。如果您在CallApiController看,你會發現這個方法
// GET: CallApi/UserCredentials
public async Task<ActionResult> UserCredentials()
{
var user = User as ClaimsPrincipal;
var token = user.FindFirst("access_token").Value;
var result = await CallApi(token);
ViewBag.Json = result;
return View("ShowApiResult");
}
用戶變量應該已經包含了用戶的姓名,身份證和這種要求。所以
var id = user.FindFirst(Constants.ClaimTypes.Subject).Value;
var firstName = user.FindFirst(Constants.ClaimTypes.GivenName).Value;
var middleName = user.FindFirst(Constants.ClaimTypes.MiddleName).Value;
var lastName = user.FindFirst(Constants.ClaimTypes.LastName).Value;
當然,所有的假設,你有你的用戶信息存儲的信息,我不檢查,如果它們不存在,將發生的錯誤。
你在什麼堆棧上?你需要用戶完成什麼?假設更新的.NET,MVC控制器上已經有一個User對象可以被轉換爲'ClaimsPrincipal'。 – beavel