WeddingPlatform.Web 1.0.0.0
지도, 갤러리, 방명록, 계좌 안내와 배경음악을 링크 하나에 담는 무료 모바일 청첩장 서비스입니다.
로딩중...
검색중...
일치하는것 없음
WeddingPlatform.Services.SuperAdminSessionTokenService 클래스 참조sealed

더 자세히 ...

WeddingPlatform.Services.SuperAdminSessionTokenService에 대한 상속 다이어그램 :
WeddingPlatform.Services.SuperAdminSessionTokenService에 대한 협력 다이어그램:

Public 멤버 함수

 SuperAdminSessionTokenService (WeddingOptions options)
string CreateToken ()
bool ValidateToken (string? token)

Private 멤버 함수

byte[] Sign (string payload)

정적 Private 멤버 함수

static string Encode (string value)
static string Encode (byte[] value)
static string DecodeString (string value)
static byte[] DecodeBytes (string value)

Private 속성

readonly WeddingOptions _options

정적 Private 속성

static readonly TimeSpan TokenLifetime = TimeSpan.FromHours(8)

상세한 설명

Super Admin Session Token Service 기능과 관련 상태를 캡슐화합니다.

SuperAdminSessionTokenService.cs 파일의 69 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ SuperAdminSessionTokenService()

WeddingPlatform.Services.SuperAdminSessionTokenService.SuperAdminSessionTokenService ( WeddingOptions options)
inline

지정한 설정으로 SuperAdminSessionTokenService 클래스의 새 인스턴스를 초기화합니다.

매개변수
options동작을 구성하는 설정입니다.

SuperAdminSessionTokenService.cs 파일의 106 번째 라인에서 정의되었습니다.

107 {
108 _options = options;
109 }

다음을 참조함 : _options.

멤버 함수 문서화

◆ CreateToken()

string WeddingPlatform.Services.SuperAdminSessionTokenService.CreateToken ( )
inline

Token 값을 생성합니다.

반환값
Create Token 작업에서 생성한 string 결과입니다.

WeddingPlatform.Services.ISuperAdminSessionTokenService를 구현.

SuperAdminSessionTokenService.cs 파일의 127 번째 라인에서 정의되었습니다.

128 {
129 var expires = DateTimeOffset.UtcNow.Add(TokenLifetime).ToUnixTimeSeconds();
130 var payload = $"v1:{expires}:{Guid.NewGuid():N}";
131 var signature = Sign(payload);
132 return $"{Encode(payload)}.{Encode(signature)}";
133 }

다음을 참조함 : Sign(), TokenLifetime.

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ DecodeBytes()

byte[] WeddingPlatform.Services.SuperAdminSessionTokenService.DecodeBytes ( string value)
inlinestaticprivate

Decode Bytes 작업을 수행합니다.

매개변수
value적용할 값입니다.
반환값
Decode Bytes 작업에서 생성한 byte[] 결과입니다.

SuperAdminSessionTokenService.cs 파일의 337 번째 라인에서 정의되었습니다.

338 {
339 try
340 {
341 var normalized = value.Replace('-', '+').Replace('_', '/');
342 normalized = normalized.PadRight(normalized.Length + (4 - normalized.Length % 4) % 4, '=');
343 return Convert.FromBase64String(normalized);
344 }
345 catch
346 {
347 return [];
348 }
349 }

다음에 의해서 참조됨 : DecodeString(), ValidateToken().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DecodeString()

string WeddingPlatform.Services.SuperAdminSessionTokenService.DecodeString ( string value)
inlinestaticprivate

Decode String 작업을 수행합니다.

매개변수
value적용할 값입니다.
반환값
Decode String 작업에서 생성한 string 결과입니다.

SuperAdminSessionTokenService.cs 파일의 307 번째 라인에서 정의되었습니다.

308 {
309 var bytes = DecodeBytes(value);
310 return bytes.Length == 0 ? "" : Encoding.UTF8.GetString(bytes);
311 }

다음을 참조함 : DecodeBytes().

다음에 의해서 참조됨 : ValidateToken().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ Encode() [1/2]

string WeddingPlatform.Services.SuperAdminSessionTokenService.Encode ( byte[] value)
inlinestaticprivate

Encode 작업을 수행합니다.

매개변수
value적용할 값입니다.
반환값
Encode 작업에서 생성한 string 결과입니다.

SuperAdminSessionTokenService.cs 파일의 277 번째 라인에서 정의되었습니다.

277 =>
278 Convert.ToBase64String(value)
279 .TrimEnd('=')
280 .Replace('+', '-')
281 .Replace('/', '_');

◆ Encode() [2/2]

string WeddingPlatform.Services.SuperAdminSessionTokenService.Encode ( string value)
inlinestaticprivate

Encode 작업을 수행합니다.

매개변수
value적용할 값입니다.
반환값
Encode 작업에서 생성한 string 결과입니다.

SuperAdminSessionTokenService.cs 파일의 251 번째 라인에서 정의되었습니다.

251=> Encode(Encoding.UTF8.GetBytes(value));

◆ Sign()

byte[] WeddingPlatform.Services.SuperAdminSessionTokenService.Sign ( string payload)
inlineprivate

Sign 작업을 수행합니다.

매개변수
payloadpayload에 사용할 string 값입니다.
반환값
Sign 작업에서 생성한 byte[] 결과입니다.

SuperAdminSessionTokenService.cs 파일의 218 번째 라인에서 정의되었습니다.

219 {
220 var secret = string.IsNullOrWhiteSpace(_options.SuperAdminPassword)
221 ? "WeddingPlatform.SuperAdminSession.EmptySecret"
222 : _options.SuperAdminPassword;
223 using var hmac = new HMACSHA256(Encoding.UTF8.GetBytes("WeddingPlatform.SuperAdminSession:" + secret));
224 return hmac.ComputeHash(Encoding.UTF8.GetBytes(payload));
225 }

다음을 참조함 : _options.

다음에 의해서 참조됨 : CreateToken(), ValidateToken().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ValidateToken()

bool WeddingPlatform.Services.SuperAdminSessionTokenService.ValidateToken ( string? token)
inline

Token 값의 유효성을 검사합니다.

매개변수
tokentoken에 사용할 string? 값입니다.
반환값
Validate Token 조건이 충족되면 true이고, 그렇지 않으면 false입니다.

WeddingPlatform.Services.ISuperAdminSessionTokenService를 구현.

SuperAdminSessionTokenService.cs 파일의 159 번째 라인에서 정의되었습니다.

160 {
161 if (string.IsNullOrWhiteSpace(token))
162 {
163 return false;
164 }
165
166 var parts = token.Split('.', 2);
167 if (parts.Length != 2)
168 {
169 return false;
170 }
171
172 var payload = DecodeString(parts[0]);
173 var signature = DecodeBytes(parts[1]);
174 if (string.IsNullOrWhiteSpace(payload) || signature.Length == 0)
175 {
176 return false;
177 }
178
179 var fields = payload.Split(':', 3);
180 if (fields.Length != 3 || fields[0] != "v1" || !long.TryParse(fields[1], out var expires))
181 {
182 return false;
183 }
184
185 if (DateTimeOffset.UtcNow.ToUnixTimeSeconds() > expires)
186 {
187 return false;
188 }
189
190 var expected = Sign(payload);
191 return CryptographicOperations.FixedTimeEquals(expected, signature);
192 }

다음을 참조함 : DecodeBytes(), DecodeString(), Sign().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ _options

readonly WeddingOptions WeddingPlatform.Services.SuperAdminSessionTokenService._options
private

options 값을 보관합니다.

SuperAdminSessionTokenService.cs 파일의 88 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Sign(), SuperAdminSessionTokenService().

◆ TokenLifetime

readonly TimeSpan WeddingPlatform.Services.SuperAdminSessionTokenService.TokenLifetime = TimeSpan.FromHours(8)
staticprivate

Token Lifetime 값을 보관합니다.

SuperAdminSessionTokenService.cs 파일의 79 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : CreateToken().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: