ASP.NET Core - 단순 쿠키 인증 작성
9352 단어 csharpdotnetaspnetauthentication
인증 서비스를 추가하고
HttpContextAccessor
.builder.Services.AddAuthentication("MyAuthScheme")
.AddCookie("MyAuthScheme", options => {
options.LoginPath = "/Login";
options.LogoutPath = "/Logout";
options.AccessDeniedPath = "/AccessDenied";
});
builder.Services.AddHttpContextAccessor();
"MyAuthScheme"
가 전체적으로 사용됩니다.HTTP 요청 파이프라인을 구성합니다.
app.UseAuthentication();
app.UseAuthorization();
app.MapRazorPages();
app.MapControllers();
로그인 페이지에서 다음을 추가하십시오.
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using System.Security.Claims;
로그인 페이지 생성자에서 다음과 같이
_httpContextAccessor
를 삽입합니다.private readonly IHttpContextAccessor _httpContextAccessor;
public Login(IHttpContextAccessor httpContextAccessor){
_httpContextAccessor = httpContextAccessor;
}
실제 로그인:
// Validate login credentials here and get user details.
var claims = new List<Claim>
{
new Claim(ClaimTypes.NameIdentifier, user.Id),
new Claim(ClaimTypes.Name, user.Username),
new Claim(ClaimTypes.Email, user.Email)
// add or remove claims as necessary
};
var claimsIdentity = new ClaimsIdentity(claims, "MyAuthScheme");
await _httpContextAccessor.HttpContext
.SignInAsync("MyAuthScheme",
new ClaimsPrincipal(claimsIdentity),
new AuthenticationProperties());
// Redirect here
이 코드는 이름이
.AspNetCore.MyAuthScheme
인 쿠키를 생성합니다.로그아웃 코드:
await _httpContextAccessor.HttpContext
.SignOutAsync("MyAuthScheme");
// Redirect to login or other page
이렇게 하면 쿠키가 제거됩니다
.AspNetCore.MyAuthScheme
.이제 인증된 사용자가 필요한 페이지에
[Authorize]
를 넣을 수 있습니다. 수동으로 확인하거나 Controller 또는 Razor 페이지에서 클레임에 액세스하려면:if(User.Identity.IsAuthenticated) {
var username = User.Identity.Name;
var email = User.Claims.Where(i => i.Type == "Email").FirstOrDefault().Value;
}
.cshtml
에 액세스하려면:@if(User.Identity.IsAuthenticated) {
<p>@User.Identity.Name</p>
<p>@User.Claims.Where(i => i.Type == "Email").FirstOrDefault().Value</p>
}
웹 사이트의 다른 부분에서 주입
IHttpContextAccessor
:if(_httpContextAccessor.HttpContext
.User.Identity.IsAuthenticated) {
//do something
}
자원
Microsoft Docs
Reference
이 문제에 관하여(ASP.NET Core - 단순 쿠키 인증 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kazinix/aspnet-core-quick-cookie-authentication-39eb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)