Identity ใน ASP.Net Core 2.1 <- กำหนด AccountController


89

ผมได้ติดตั้งASP.NET Core 2.1แต่แม้ว่าฉันได้สร้างใหม่ASP.NET Core Web Applicationใช้ASP.NET Core 2.1กับIndividual User AccountsStore user accounts in-appฉันไม่สามารถหาสิ่งที่ AccountController หรือชม

ฉันยังคงสามารถลงทะเบียนและเข้าสู่ระบบได้โดยไม่มีปัญหา แต่ฉันไม่พบรหัสสำหรับมันมีอยู่ใน 2.0

ป้อนคำอธิบายภาพที่นี่


ฉันถามคำถามที่นี่หากคุณสนใจที่จะตอบ: stackoverflow.com/questions/51728881/… . ฉันกำลังดิ้นรนกับการออกจากระบบในแอป. NET Core 2.1 Identity Server 4 +1.
w0051977

คำตอบ:


74

การเปลี่ยนแปลงอย่างหนึ่งใน 2.1คือ Razor Class Libraries และเอกลักษณ์เริ่มต้นจะอยู่ในหนึ่งในนั้นในเทมเพลตการรับรองความถูกต้องแต่ละรายการ หากคุณต้องการมีโค้ดในแอปของคุณเพื่อให้คุณสามารถปรับแต่งได้คุณสามารถใช้ Visual Studio หรือใช้เครื่องมือ scaffolder ส่วนกลาง ดูคำแนะนำเกี่ยวกับวิธีการทำทั้งสองอย่างนี้


20
ฉันสามารถสร้างไฟล์ cshtml ที่ไม่ใช่ตัวควบคุม ไกด์ไม่ได้พูดถึงมันมีความคิดอย่างไรในการสร้าง accountController?
user1085907

6
อ่าแย่จัง .. มันเหมือนตัวออกแบบในไฟล์ย่อย
user1085907

15
ทำไมสิ่งนี้ปรับปรุง ? มันทำให้สิ่งต่างๆสับสนโดยไม่จำเป็น
เลียง

93

ASP.NET Core 2.1 เปิดตัวคุณสมบัติใหม่ที่เรียกว่าไลบรารีคลาส Razor ที่ให้คุณสร้างมุมมองและเพจเป็นส่วนหนึ่งของไลบรารีที่ใช้ซ้ำได้ ASP.NET Core Identity ถูกย้ายไปยัง RCL ดังกล่าว คุณสามารถลบล้างได้ในโครงการของคุณ:

  1. จากโซลูชัน Explorerคลิกขวาในโครงการ> เพิ่ม > ใหม่ Scaffolded รายการ
  2. จากบานหน้าต่างด้านซ้ายของนั่งร้านเพิ่มโต้ตอบเลือกเอกลักษณ์ > ใส่
  3. ในกล่องโต้ตอบADD Identityให้เลือกไฟล์ที่คุณต้องการลบล้าง
    1. เลือกเค้าโครงหากจำเป็น
    2. เลือกหรือสร้างระดับบริบทข้อมูล
  4. ตีใส่

สำหรับข้อมูลเพิ่มเติมเอกสารการเยี่ยมชม


1
คุณต้องคลิกขวาที่โครงการไม่ใช่วิธีแก้ปัญหาเพื่อรับ 'New Scaffolded Item' .. ขอบคุณสำหรับข้อมูลเพิ่มเติม
leen3o

1
สิ่งนี้ยังไม่ปรากฏในฟิลด์ตัวควบคุมบัญชีบอกว่าฉันได้เพิ่มฟิลด์ที่กำหนดเองแล้วฉันจะบอกได้อย่างไรว่าฉันต้องการมันในวิธีการลงทะเบียน
rogue39nin

เฮ้ถ้าฉันต้องการเขียนทับคอนโทรลเลอร์แทนหน้ามีดโกนล่ะ? ฉันใช้สปาดังนั้นฉันไม่แน่ใจว่าจะสามารถแทนที่คอนโทรลเลอร์ได้หรือไม่
Robert Tirta

7

วิธีแก้ปัญหาของฉันคือสร้างโครงการด้วย. net core 2.0 จากนั้นอัปเดตกรอบงานเป็น 2.1 และการพึ่งพาทั้งหมดเป็นเวอร์ชันล่าสุด



3

ตั้งแต่ตัวตน UI ถูกส่งมาเป็นห้องสมุดASP.NET Core 2.1

แต่คุณสามารถแทนที่มุมมองและตัวควบคุมได้โดยวางไว้ในตำแหน่งที่ถูกต้อง (เช่น View / Account / Login.cshtml)


2

เท่าที่ฉันทราบรหัส AccountController ถูกย้ายไปที่หน้า Razor (และรหัสอยู่ข้างหลัง) และทำงานได้ดีที่สุดโดยใช้ค่าเริ่มต้นเพื่อปรับแต่งรหัสที่คุณสามารถ Scaffold (เช่นสร้างไฟล์ในตำแหน่งที่ถูกต้อง) จาก Net ใหม่เอี่ยม โครงการ Core 2.1 โดยคลิกขวาที่โครงการใน Visual Studio 2017 และเลือก Add => New Scaffolded Item => Identity ซึ่งจะเปิดกล่องโต้ตอบเลือก เลือกหน้าที่ต้องการและไปที่นั่น เพียงแค่เปลี่ยนเพจที่คุณต้องการและคัดลอกไปยังตำแหน่งเดียวกันในโปรเจ็กต์ที่เปิดใช้ Identity เนื่องจากเพจใหม่เหล่านี้จะลบล้างค่าเริ่มต้นโดยอัตโนมัติ นี่เป็นวิธีใหม่ในการปรับแต่งการรับรองความถูกต้อง / การอนุญาตโดยใช้ Identity ไม่แน่ใจว่าหลายคนพิจารณาถึงความก้าวหน้าครั้งสำคัญนี้หรือไม่!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.