[英]C# Get property values from an Object
在我的 WebApp 項目中,我在大多數控制器/剃須刀頁面 model 方法中記錄當前用戶的詳細信息。 我將用於檢索當前用戶的代碼移到存儲庫中,並將 object 返回給調用方法。
我不確定如何獲取 object 中返回的屬性值。
Class:
public class CurrentUser : ICurrentUser
{
private readonly IHttpContextAccessor _httpContextAccessor;
public CurrentUser(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public class CurrentUserProperties
{
public string Id { get; set; }
public string Username { get; set; }
public string Forename { get; set; }
public string Surname { get; set; }
}
public object GetCurrentUser()
{
CurrentUserProperties currentUser = new CurrentUserProperties
{
Id = _httpContextAccessor.HttpContext.User.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value,
Username = _httpContextAccessor.HttpContext.User.Identity.Name,
Forename = _httpContextAccessor.HttpContext.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.GivenName)?.Value,
Surname = _httpContextAccessor.HttpContext.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Surname)?.Value
};
return currentUser;
}
}
Controller 方法:
object currentUser = _currentUser.GetCurrentUser();
我希望使用盡可能少的代碼來獲取返回的這些屬性的值,因為我將在整個應用程序的大多數方法中使用它,謝謝
根據'Rufus'的評論,下面的代碼起到了作用,謝謝
CurrentUserProperties currentUser = (CurrentUserProperties)_currentUser.GetCurrentUser();
var userId = currentUser.Id;
var username = currentUser.Username;
var forename = currentUser.Forename;
var surname = currentUser.Surname;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.