ShopPlatform.Web
1.0.0.0
농산물, 소프트웨어 라이선스와 개발 용역을 직접 판매하는 CodeMaru 직영 쇼핑몰입니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
ShopUserContext.cs
이 파일의 문서화 페이지로 가기
1
using
System.Security.Claims;
2
using
Dreamine.Identity;
3
using
Microsoft.AspNetCore.Components.Authorization;
4
5
namespace
ShopPlatform.Services
;
6
15
public
sealed
record
ShopCurrentUser
(
16
string
Id,
17
string
Provider,
18
string
Email,
19
string
DisplayName)
20
{
29
public
bool
IsAuthenticated => !
string
.IsNullOrWhiteSpace(Id);
30
39
public
static
ShopCurrentUser
Anonymous {
get
; } =
new
(
""
,
""
,
""
,
""
);
40
}
41
50
public
sealed
class
ShopUserContext
51
{
60
private
readonly AuthenticationStateProvider
_authenticationStateProvider
;
61
78
public
ShopUserContext
(AuthenticationStateProvider authenticationStateProvider)
79
{
80
_authenticationStateProvider
= authenticationStateProvider;
81
}
82
99
public
async Task<ShopCurrentUser>
GetCurrentAsync
()
100
{
101
var state = await
_authenticationStateProvider
.GetAuthenticationStateAsync().ConfigureAwait(
false
);
102
var principal = state.User;
103
104
if
(principal.Identity?.IsAuthenticated !=
true
)
105
{
106
return
ShopCurrentUser
.Anonymous;
107
}
108
109
string
userId = principal.FindFirstValue(DreamineIdentityExtensions.UserIdClaimType) ??
string
.Empty;
110
if
(
string
.IsNullOrWhiteSpace(userId))
111
{
112
return
ShopCurrentUser
.Anonymous;
113
}
114
115
string
provider = principal.FindFirstValue(DreamineIdentityExtensions.ProviderClaimType) ??
"Local"
;
116
string
email = principal.FindFirstValue(ClaimTypes.Email) ??
string
.Empty;
117
string
displayName = principal.FindFirstValue(ClaimTypes.Name) ?? email;
118
119
return
new
ShopCurrentUser
(
120
$
"oauth-{userId}"
,
121
provider,
122
email,
123
displayName);
124
}
125
}
ShopPlatform.Services
Definition
CartService.cs:3
ShopPlatform.Services.ShopCurrentUser
record ShopCurrentUser(string Id, string Provider, string Email, string DisplayName)
Definition
ShopUserContext.cs:15
ShopPlatform.Services.ShopUserContext.GetCurrentAsync
async Task< ShopCurrentUser > GetCurrentAsync()
Definition
ShopUserContext.cs:99
ShopPlatform.Services.ShopUserContext.ShopUserContext
ShopUserContext(AuthenticationStateProvider authenticationStateProvider)
Definition
ShopUserContext.cs:78
ShopPlatform.Services.ShopUserContext._authenticationStateProvider
readonly AuthenticationStateProvider _authenticationStateProvider
Definition
ShopUserContext.cs:60
Services
ShopUserContext.cs
다음에 의해 생성됨 :
1.17.0