반응형
Notice
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- 자료구조
- 버전관리
- 머신러닝
- 컴퓨터비전
- 데이터분석
- Yes
- 네트워크보안
- 딥러닝
- I'm Sorry
- 데이터베이스
- 보안
- 프로그래밍
- 소프트웨어공학
- 데이터구조
- 클라우드컴퓨팅
- 자바스크립트
- 프로그래밍언어
- springboot
- 데이터과학
- 네트워크
- 웹개발
- 컴퓨터과학
- 컴퓨터공학
- 사이버보안
- 알고리즘
- 소프트웨어
- 빅데이터
- 파이썬
- 인공지능
- 디자인패턴
Archives
- Today
- Total
스택큐힙리스트
어떻게 ASP.NET Core에서 현재 사용자를 얻을 수 있나요? 본문
반응형
현재 사용자를 가져와서 이메일 주소와 같은 필드에 접근할 수 있도록 하려고 합니다.
하지만 asp.net core에서는 이것을 할 수 없습니다.
이것이 내 코드입니다:
HttpContext는 컨트롤러의 생성자에서 거의 null입니다.
각 작업마다 사용자를 가져오는 것은 좋지 않습니다. 사용자 정보를 한 번 가져와서 ViewData에 저장하고 싶습니다;
public DashboardController()
{
var user = HttpContext.User.GetUserId();
}
답변 1
User.FindFirst(ClaimTypes.NameIdentifier).Value
생성자를 위한 수정
다음 코드가 작동합니다:
public Controller(IHttpContextAccessor httpContextAccessor)
{
var userId = httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value
}
RTM을 위한 수정
IHttpContextAccessor를 등록해야 합니다:
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpContextAccessor();
}
답변 2
ASP.NET Core에서 현재 사용자를 가져오는 방법은 User property를 통해 간단하게 얻을 수 있습니다. User property는 현재 인증된 사용자에 대한 정보를 제공합니다.ASP.NET Core는 기본적으로 인증 및 권한 인증에 빌트인 지원을 제공합니다. 사용자 인증이 설정되어 있으면 현재 사용자에 대한 정보를 가져올 수 있습니다.
먼저 ConfigureServices 메서드에서 인증 서비스를 구성해야합니다. 예를 들어, 쿠키 인증 서비스를 구성하려면 다음과 같이 코드를 작성할 수 있습니다.
```csharp
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = /Account/Login;
options.AccessDeniedPath = /Account/Forbidden;
});
```
이렇게하면 인증 서비스가 구성되고 사용자가 로그인할 때 추가 설정을 적용할 수 있습니다. 로그인 경로 및 액세스 거부 경로를 지정할 수 있습니다.
이제 컨트롤러에서 현재 사용자에 액세스할 수 있습니다. 간단하게 User 속성을 사용하여 인증된 사용자에 대한 정보에 액세스 할 수 있습니다.
```csharp
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
public class HomeController : Controller
{
public IActionResult Index()
{
var user = User;
// 현재 사용자에 대한 정보를 사용하여 원하는 작업 수행
return View();
}
}
```
User 속성은 현재 요청에 대한 사용자와 관련된 정보를 제공합니다. 이 정보를 사용하여 현재 사용자의 식별자, 이메일, 역할 등과 같은 정보에 액세스 할 수 있습니다.
이러한 방식으로 ASP.NET Core에서 현재 사용자를 가져올 수 있습니다. 유저 프로퍼티를 사용하여 인증된 사용자에 대한 정보를 간단하게 얻을 수 있고, 이를 활용하여 유저에게 맞는 동작을 수행할 수 있습니다. 이를 통해 웹 애플리케이션을 보안하고 사용자 경험을 향상시킬 수 있습니다.
하지만, 웹사이트의 SEO에 관심을 가진다면 다른 방법도 고려해야 합니다. 사용자 인증에 대한 구체적인 내용은 SEO에 크게 영향을 미치지 않을 수 있으며, 대부분의 검색 엔진은 이러한 정보를 무시합니다. 대신, 웹사이트의 콘텐츠, 페이지 속도, 링크 구조 등에 초점을 맞추는 것이 더 중요합니다.
따라서 SEO에 대한 영향을 최소화하려면 웹사이트의 콘텐츠 품질을 향상시키고, 적절한 키워드를 사용하여 메타 태그와 URL을 최적화하는 등의 다른 SEO 기법을 사용해야합니다.
반응형
Comments