C#/ASP.NET Core 9

[Blazor] 이미지 여러 장 preview 만들기

이미지를 올렸을 때, 어떤 사진인지 확인을 시켜주기 위해 preview를 만들려 했다. MS 문서 ASP.NET Core Blazor 파일 업로드 InputFile 구성 요소를 사용하여 Blazor에서 파일을 업로드하는 방법을 알아봅니다. learn.microsoft.com 다음 글의 하단에서 다음 코드를 작성하면 작동을 하기는 한다. // 위 문서에서 발췌한 코드 @page "/file-upload-4" @inject IJSRuntime JS File Upload Example @code { private InputFile? inputFile; private ElementReference previewImageElem; private async Task ShowPreview() => await JS.I..

C#/ASP.NET Core 2023.08.21

[Blazor] Firestore Array로 저장하기

일전에 Firestore에 데이터를 저장시키는 글을 올렸었다. 이전 글 [Firestore 저장할 때 자료형 주의할 것] [Asp.net core] Firestore 저장할 때 자료형 주의할 거 Firestore에 자료를 저장하려면 FirestoreDb db = FirestoreDb.Create(Project_Id); DocumentReference docRef = db.Collection(Collection_Name).Document(Document_Name); //저장할 때 await docRef.SetAsync(data); //가져올 때 DocumentSnapshot snapsho ariel.moe 여기서는 JsonConvert.SerializeObject()로 저장을 했었는데, 이게 콘솔에서 확인..

C#/ASP.NET Core 2023.08.21

[Blazor] Google OAuth 2.0 사용

연동하는 법은 구글에 검색하면 많이 나오니 자세한 내용은 생략한다. Program.cs options.Events = new OAuthEvents ~~ 부분은 특정 도메인만 OAuth를 할 수 있도록 hd 파라미터를 추가한 부분이다. 특정 도메인만 로그인시키게 하고싶지 않다면 저 부분은 빼도 된다. builder.Services .AddAuthentication(options => { options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultChallengeScheme = GoogleDefaults.AuthenticationScheme; }) .AddCookie(options => { options.C..

C#/ASP.NET Core 2023.08.19

[Asp.net core] Firestore 저장할 때 자료형 주의할 거

Firestore에 자료를 저장하려면 FirestoreDb db = FirestoreDb.Create(Project_Id); DocumentReference docRef = db.Collection(Collection_Name).Document(Document_Name); //저장할 때 await docRef.SetAsync(data); //가져올 때 DocumentSnapshot snapshot = await docRef.GetSnapshotAsync(); Dictionary data = snapshot.ToDictionary(); 위와 같이 간단하다. 그런데, 파이어스토어는 number, boolean, string, map, array... 이런 거 밖에 저장할 수 없다. List형은 array로 ..

C#/ASP.NET Core 2023.05.07

[Asp.net core] View에서 Controller로 데이터 전달 (전달할 것이 List일 때)

뷰에서 컨트롤러에 값을 전달해야 할 때가 있다. 무언가를 입력받고 이를 처리해야 할 때. 이는 간단하다. 아이디 비밀번호 로그인 이렇게 해주면 된다. form태그에 전달할 곳(나의 경우는 asp-action) 방법(method)을 적어주면 된다. 그러면 input의 값을 폼이 전달한다. 이때 전달을 아래와 같이 보내고 값을 얘가 잘 읽기 위해서는 input의 Name값과 매개변수의 이름이 일치해야 한다. [HttpPost] public async Task Login(string Email, string Password) { ... } [HttpPost]는 attribute인데, 안 붙여도 되는지는 모르겠다. 나는 그냥 다 붙였다. 추가: input이 disabled 되어 있다면 그 input으로부터는 값..

C#/ASP.NET Core 2023.05.07

[Asp.net core] Firebase Storage에 사진 업로드&다운로드

사진은 안타깝게도 Firestore에 올릴 수 없습니다. (사진을 -> 바이트 배열 -> json으로 바꾸고 json 문자열을 그대로 올리면 될 것 같다는 생각을 해봤으나.. 시도는 안해봐서 모릅니다) 그래서 사진을 스토리지에 올려보기로 했습니다. 이번 역시 코드는 간단한데.. 이 코드 쓰자고 하루정도는 날린 듯...ㅠ 스토리지를 쓰기 위해 저는 일단 아래의 패키지를 설치했습니다 사진 업로드하기 input을 이용해 파일을 받았습니다. 모든 이미지 형식을 허용하기 위해 accept="image/*"를 사용했습니다. 만일 'jpg나 png만 받고 싶다' 라고 하신다면 와 같이 확장자와 콤마(,)로 필터를 추가해줄 수 있습니다. public async Task UploadImage(IFormFile file)..

C#/ASP.NET Core 2023.05.07

[Asp.net core] Firebase link 생성하고 이메일로 전송

비밀번호를 잊어버리거나 비밀번호를 잊어버리면 바꿔줘야 한다. 내가 만들고 있던 거에는 Firebase로 로그인을 했기 때문에 Firebase의 비밀번호 변경 이메일을 전송하려고 한다. firebase문서에서는 다음과 같이 안내하고 있다. 그런데 흠.. 아직도 actionCodeSettings가 뭔지는 잘 모르겠다. 이메일 보내는 거는 그냥 이전 글에서 쓴 방법대로 그대로 가져왔다. 링크 생성은 위의 사진대로 GeneratePasswordResetLinkAsync 메서드를 사용하면 된다. (await 안 써주면 링크가 이상한 거로 만들어진다) var link = await FirebaseAuth.DefaultInstance.GeneratePasswordResetLinkAsync(email); MailMes..

C#/ASP.NET Core 2023.05.06

[Asp.net core] 이메일 전송 구현했던거

내가 계획한 웹사이트는 로그인 시에는 이메일이 유효한지 확인을 해야할 필요가 있다. 그래서 이메일을 보냈을 때, 이메일 본문의 링크를 클릭할 시 인증이 되는 기능을 만들고 싶었다. 다행히도 Firebase에는 GenerateEmailVerificationLinkAsync 메서드가 있었고, 슬프게도, 한두시간 이리저리 만져본 결과, 내 프로젝트에는 적용할 수 없다는 판정을 받았다. 왜냐하면 내 프로젝트는 계정을 두 개를 사용해야 했기 때문이다. 로그인용으로 하나, 재학생 인증용으로 학교 이메일(얘가 인증 보낼 메일 주소다) 하나를 사용해야 했다. 야속하게도(?) Firebase를 통해 전송하려면 보낼 대상의 이메일이 User로서 등록되어 있어야 하기에 그 외의 주소로는 보낼 수 없었다. 그러니까 재학생을 ..

C#/ASP.NET Core 2023.05.06

[Asp.net core] Firebase 인증 구현기

이 글을 시작으로 얼마나 작성해볼지는 모르겠지만, asp.net core mvc로 웹페이지 개발 중 겪었던 애로사항과 해결과정을 작성해볼 것이다. 참고로 이 글을 작성하고 있는 와중에도 개발중이라.. 자주 쓸 수 있으면 좋겠다. 환경 .Net Core 6.0 우선 인증은, 인터넷을 뒤지며 찾아보면 방법이 많긴 한데 따라하려면 안 되는 경우였다. FirebaseAuthProvider였나? 이 클래스가 없다고 자꾸 에러를 내뱉는데 유튜브에서는 잘만 사용하더라. (사실 이때 화가 많이 남. 난 왜 안대ㅐㅐㅐㅐ) Nuget도 똑같은 걸 받았는데 안돼서 Firebase 공식 문서에 있는 FirebaseAdmin 패키지를 사용하기로 결정했다. 일단은 내가 asp.net core로 개발하려는게 잘못이 아닐까 생각이 ..

C#/ASP.NET Core 2023.05.05