एस्पनेट कोर मचान ऐप में लॉगिन और रजिस्टर पृष्ठ कहां हैं?


138

VS 2017 में, मैंने एक नया ASP.NET कोर वेब एप्लिकेशन बनाया। विज़ार्ड के दूसरे पृष्ठ पर, मैंने वेब एप्लिकेशन चुना, और प्रमाणीकरण के लिए मैंने "व्यक्तिगत उपयोगकर्ता खाते" को चुना।

अब, मैं / खाता / रजिस्टर और / खाता / लॉगिन से जुड़े पृष्ठों को खोजने की कोशिश कर रहा हूँ

_Layout.cshtml _LoginPartial.cshtml में लाता है, यह क्लासिक MVC में किया गया था:

<div class="navbar-collapse collapse">
    <ul class="nav navbar-nav">
        <li><a asp-page="/Index">Home</a></li>
        <li><a asp-page="/About">About</a></li>
        <li><a asp-page="/Contact">Contact</a></li>
    </ul>
    <partial name="_LoginPartial" />
</div>

यदि उपयोगकर्ता में प्रवेश नहीं किया गया है तो _LoginPartial में वे <a>टैग शामिल हैं जो लॉगिन और रजिस्टर पृष्ठों की ओर इशारा करते हैं:

<ul class="nav navbar-nav navbar-right">
    <li><a asp-area="Identity" asp-page="/Account/Register">Register</a></li>
    <li><a asp-area="Identity" asp-page="/Account/Login">Login</a></li>
</ul>

यह सब समझ में आता है। लेकिन मुझे उम्मीद है कि रजिस्टर और लॉगिन फ़ोल्डर को शामिल करने के लिए क्षेत्र फ़ोल्डर संरचना। ऐसा नहीं होता। केवल एक चीज जो मुझे मिल रही है वह है _ViewStart.cshtml

क्षेत्रों फ़ाइल संरचना

मुझे पता है कि मचान कोड काम करता है, जब मैं प्रोजेक्ट चलाता हूं, तो रजिस्टर लिंक "/ पहचान / खाता / रजिस्टर" और लॉगिन लिंक "/ पहचान / खाता / लॉगिन" को इंगित करता है। रजिस्टर लिंक पर क्लिक करने से मुझे एक पंजीकरण पृष्ठ मिलता है जिसमें पाठ "नया खाता बनाएँ" शामिल है।

लेकिन मुझे प्रोजेक्ट में कहीं भी "नया खाता बनाएँ" पाठ नहीं मिल रहा है।

क्या कोई मुझे बता सकता है कि मुझे क्या याद आ रहा है?

जवाबों:


143

Asp.net core 2.1 के पूर्वावलोकन के दौरान यह घोषणा की गई थी कि Identity UI को एक नए रेज़र क्लास लाइब्रेरी में ले जाया जाएगा। https://blogs.msdn.microsoft.com/webdev/2018/03/02/aspnetcore-2-1-identity-ui/

यदि आप स्थानीय विचारों को पसंद करते हैं, तो पहचान के दृश्यों को अपने प्रोजेक्ट में मचान करना अभी भी संभव है: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/scaffold-identity?view-aspnetcore-2.1 और टैब = दृश्य स्टूडियो


117
उत्तर के लिए अंगूठे, और Microsoft के लिए नीचे अंगूठे। डेवलपर्स से कोड छिपाने और उन्हें प्रामाणिक यूआई के लिए उपयोग करने के लिए एक मूल यूआई देने की बात क्या है? कितना फनी है। Microsoft पर आओ, हम कोड में देखना चाहते हैं, इसे सीखते हैं, इसे तोड़ते हैं, इसे ठीक करते हैं, और इसे तैनात करते हैं। यह गलत है।
तेमन शिपाही

4
क्या कोई पीएम कमांड है जिससे हम स्थानीय को सभी पहचान फ़ाइलें प्राप्त कर सकते हैं।
पनकी शर्मा

3
@pankysharma मैंने सिर्फ ऐसा करने के लिए एक कमांड के साथ एक जवाब जोड़ा है (भविष्य में किसी को भी इसकी आवश्यकता है)।
Alisson

3
क्या हमें गंभीरता से रेजर पृष्ठों का उपयोग करना है? क्या केवल MVC के विचारों को नियमित रूप से मचान करने का कोई विकल्प नहीं है?
दक्षिणावर्त

अगर कोई और भी मेरी तरह गूंगा है ... मुझे इससे अधिक समय लगता है कि आपको यह महसूस करना चाहिए कि आप फ़ाइल पर राइट-क्लिक करके और "गो टू पेज मॉडल" का चयन करके गेट / पोस्ट कोड देख सकते हैं
जूता

59

आप इसे Visual Studio के भीतर से कर सकते हैं, अपने प्रोजेक्ट पर राइट क्लिक करें और Add-> New Scaffolded Item चुनें

नई पाड़ आइटम

इसके बाद आइडेंटिटी का चयन करें और ऐड पर क्लिक करें पहचान का चयन करें

अब उन पृष्ठों का चयन करें जिन्हें आप ओवरराइड करना चाहते हैं। डेटा कॉन्‍टेक्‍ट क्‍लास को छोड़ें : और आपके नाम और संदर्भ आपके लिए पहले से भरे होने चाहिए।

पृष्ठों का चयन करें

आखिर में Add पर क्लिक करें। यदि आपके पास पहले से मौजूद फ़ाइलें हैं (तो खाके से) तो यह उन्हें ओवरराइट करने के बारे में चेतावनी देगा।


यह वास्तव में काम करता है। हालाँकि, मेरे द्वारा लॉगिन पृष्ठ आयात करने के बाद मेरा कोड साफ-सुथरा नहीं होगा। समाधान यहां पाया जा सकता है: stackoverflow.com/questions/58277172/…
योसी गेरेट्ज़

महान जवाब जॉन के लिए धन्यवाद, किसी भी विचार क्यों उपयोगकर्ता वर्ग ड्रॉपडाउन (फार्म के अंत में) अक्षम है?
हमजा खानजादा

1
धन्यवाद, इसने काम किया
M

मेमोरी से, उपयोगकर्ता क्लास एक बार डेटा संदर्भ वर्ग (+ बटन पर क्लिक करें) बनाने में सक्षम हो जाता है
जॉन राह

14

प्रोजेक्ट पर राइट-क्लिक करें Add -> New Scaffold Item, संवाद पर, बाएं फलक में पहचान का चयन करें ।

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें


आप इस आदेश का उपयोग करके इन पृष्ठों को भी उत्पन्न कर सकते हैं:

dotnet aspnet-codegenerator identity -dc WebApplication1.Data.ApplicationDbContext

सुनिश्चित करें कि आप अपने स्वयं के नामस्थान + DbContext नाम से प्रतिस्थापित करते हैं। यहां पेज जेनरेट किए गए हैं:

यहाँ छवि विवरण दर्ज करें


यदि आप इस समस्या को देखते हैं:

फ़ीचर 'डिफ़ॉल्ट शाब्दिक' C # 7.0 में उपलब्ध नहीं है। कृपया भाषा संस्करण 7.1 या अधिक का उपयोग करें।

आप इसे अपने साथ जोड़कर इसे ठीक कर सकते हैं .csprojऔर इसका पुनर्निर्माण कर सकते हैं:

<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="3.2.0-beta3-final" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.2.0-beta3-final" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="3.2.0-beta3-final" />

त्रुटि: बिंदु: मचान विफल। फ़ोल्डर में प्रोजेक्ट फ़ाइल नहीं मिल सकी
डिएगो वेन्केशियो

@ DiegoVenâncio क्या आपने WebApplication1.Data.ApplicationDbContextसही नामस्थान और फ़ाइल नाम से प्रतिस्थापित किया है?
एलिसन

2
पाठ्यक्रम, इस अंतिम पंक्ति को हटाने के बाद काम करें: <PackageReference शामिल करें = "Microsoft.CodeAnalysis.CSharp.Workspaces" संस्करण = "3.2.0-beta3-अंतिम" />
डिएगो

1
तुम भी दृश्य स्टूडियो समाधान एक्सप्लोरर के माध्यम से यह कर सकते हैं stackoverflow.com/a/54995794/2073738
सूट लड़के Apps

1
@DaImTo में डॉटनेट और एस्पनेट के बीच कोई हाइफ़न नहीं होना चाहिए। यह होना चाहिए dotnet aspnet-codegenerator। शायद यह मुद्दा है?
एलिसन

6

'यदि आप चाहते हैं कि सभी पहचान कोड आपके आवेदन में हों, ताकि आप इसे अपनी इच्छानुसार बदल सकें, तो आप अपने आवेदन में पहचान कोड जोड़ने के लिए नए पहचान चिह्न का उपयोग कर सकते हैं। सभी स्कैफोल्डेड पहचान कोड एक विशिष्ट क्षेत्र फ़ोल्डर में उत्पन्न होता है ताकि यह आपके एप्लिकेशन कोड से अच्छी तरह से अलग रहे। '

https://blogs.msdn.microsoft.com/webdev/2018/02/02/asp-net-core-2-1-roadmap/#identity

यह मेरे लिए बहुत अच्छा और आसान काम करता है।



मैंने इसे आज एक मौजूदा प्रोजेक्ट में उपयोग किया है जिसमें मैंने 2.2 में अपडेट किया है, मौजूदा DbContext के साथ और यह एक बार कमाल का काम करता है मैंने अपने मौजूदा संदर्भ को बताया कि यह आइडेंटिटी से विरासत में मिला था!
जैमहेडर्ट

1

पार्टी के लिए थोड़ा देर से लेकिन पहचान यूआई के साथ निराशा के बाद मैंने इसे छोड़ दिया। इसके बिना अपने प्रोजेक्ट बनाएं। मेरी सलाह है (२.१ या २.२ का उपयोग करते समय) अपना स्वयं का खाता बनाएँ / नियंत्रकों और पीवीसी पृष्ठों का प्रबंधन करें। कुछ स्टार्टअप.के डिबगिंग आवश्यक हो जाएगा। साथ ही प्रकाशित दृश्य (यानी views.dll) संकलन विकल्प को अक्षम करें। शायद मेरे पास कोई विकल्प नहीं है, लेकिन कंपाइलर पृष्ठ स्तर स्क्रिप्ट ब्लॉक में किसी भी बदलाव को पूरी तरह से अनदेखा करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.