คำถามติดแท็ก asp.net-mvc-5

ASP.NET MVC 5 เป็นแพลตฟอร์ม ASP.NET Model-View-Controller เวอร์ชันหลักลำดับที่ห้าสำหรับเว็บแอปพลิเคชัน

21
OwinStartup ไม่ยิง
ฉันมีรหัสการตั้งค่า OwinStartup ทำงานได้อย่างสมบูรณ์และหยุดทำงาน น่าเสียดายที่ฉันไม่แน่ใจว่าสิ่งที่ฉันทำเพื่อหยุดทำงานและฉันมีเวลายากมากที่จะหามัน เพื่อให้แน่ใจว่าฉันมีพื้นฐานครอบคลุมฉันตรวจสอบสองเท่าเพื่อให้แน่ใจว่าฉันมี [assembly:OwinStartup(typeof(WebApplication.Startup))] กำหนดค่าแอตทริบิวต์ไว้อย่างถูกต้องและตรวจสอบให้แน่ใจว่าฉันไม่มี appSetting for owin: AutomaticAppStartup ที่ตั้งค่าเป็นเท็จดังนั้นฉันจึงตั้งค่าให้เป็นจริงเพื่อความปลอดภัยเนื่องจากไม่มีอะไรมาก่อน <add key="owin:AutomaticAppStartup" value="true" /> ฉันยังได้ลองเรียกใช้การตั้งค่าแอพโดยเฉพาะ: <add key="owin:appStartup" value="WebApplication.Startup" /> ก่อนที่จะหยุดทำงานฉันอัพเกรด Microsoft.Owin.Security NuGet แพ็คเกจเป็น 2.0.2 ดังนั้นฉันจึงลองเปลี่ยนเป็น 2.0.1 (นั่นเป็นความเจ็บปวด) แต่ก็ไม่ได้เปลี่ยนแปลงอะไรเลย ฉันมี WebActivator ติดตั้งอยู่ในโครงการและกำลังใช้สิ่งนั้นเพื่อบู๊ตสิ่งอื่น ๆ แต่ฉันได้ทดสอบว่าในเทมเพลต WebApplication ใหม่และทำงานได้ที่นั่นดังนั้นฉันจึงไม่คิดว่านั่นเป็นผู้ร้าย ฉันยังลองลบคลาสเริ่มต้นของฉันและใช้ Visual Studio เพื่อเพิ่มคลาสใหม่โดยใช้ประเภทคลาสเริ่มต้นของ OWIN ในเพิ่มรายการใหม่และนั่นก็ไม่ได้ถูกเรียกเช่นกัน ต่อไปฉันลองเพิ่มคลาสการเริ่มต้นที่สองเนื่องจากฉันรู้ว่ามันจะทำให้เกิดข้อยกเว้นถ้ามีการกำหนดแอตทริบิวต์ของ OwinStartup มากกว่าหนึ่งรายการ แต่มันไม่ได้เป็นการยกเว้นข้อยกเว้นใด ๆ ไม่แน่ใจว่าจะลองอะไรอีก ความคิดใด …

10
ASP.NET MVC 5 - ตัวตน วิธีรับ ApplicationUser ปัจจุบัน
ฉันมีนิติบุคคลบทความในโครงการของฉันที่มีคุณสมบัติชื่อApplicationUser Authorฉันจะรับวัตถุเต็มรูปแบบของการเข้าสู่ระบบในปัจจุบันได้ApplicationUserอย่างไร? ขณะที่การสร้างบทความใหม่ผมต้องตั้งค่าAuthorคุณสมบัติในการปัจจุบันArticleApplicationUser ในกลไกการเป็นสมาชิกแบบเก่ามันเป็นเรื่องง่าย แต่ในวิธีการแบบผู้ถือหุ้นแบบใหม่ฉันไม่รู้ว่าจะทำอย่างไร ฉันพยายามทำแบบนี้: เพิ่มการใช้คำสั่งสำหรับส่วนขยายข้อมูลประจำตัว: using Microsoft.AspNet.Identity; จากนั้นฉันพยายามรับผู้ใช้ปัจจุบัน: ApplicationUser currentUser = db.Users.FirstOrDefault(x => x.Id == User.Identity.GetUserId()); แต่ฉันได้รับข้อยกเว้นต่อไปนี้: LINQ ไปยังเอนทิตีไม่รู้จักเมธอด 'System.String GetUserId (System.Security.Principal.IIdentity)' และวิธีนี้ไม่สามารถแปลเป็นนิพจน์ร้านค้าได้ แหล่งที่มา = EntityFramework

17
HTTP Error 500.19 และรหัสข้อผิดพลาด: 0x80070021
ฉันมี webAPI build อย่างง่ายโดย Visual Studio 2013 มันทำงานได้ดีเมื่อฉันเรียกใช้จาก VS13 แต่เมื่อฉันคัดลอกโครงการใน IIS ท้องถิ่นมันทำให้ฉันมีข้อผิดพลาดดังต่อไปนี้ HTTP Error 500.19 - ข้อผิดพลาดเซิร์ฟเวอร์ภายในไม่สามารถเข้าถึงหน้าที่ร้องขอได้เนื่องจากข้อมูลการกำหนดค่าที่เกี่ยวข้องสำหรับหน้านั้นไม่ถูกต้อง ข้อมูลข้อผิดพลาดโดยละเอียด: โมดูล IIS Web Core ประกาศ BeginRequest ตัวจัดการ ยังไม่ได้ตัดสินใจ รหัสข้อผิดพลาด 0x80070021 ข้อผิดพลาด การกำหนดค่าส่วนการกำหนดค่านี้ไม่สามารถใช้ที่เส้นทางนี้ สิ่งนี้เกิดขึ้นเมื่อส่วนถูกล็อคในระดับผู้ปกครอง การล็อคเป็นค่าเริ่มต้น (overrideModeDefault = "Deny") หรือตั้งค่าอย่างชัดเจนโดยแท็กตำแหน่งที่มี overrideMode = "Deny" หรือ Legacy allowOverride = "false" กำหนดค่าไฟล์ \? \ C: \ inetpub …

8
จะเพิ่ม MVC5 ใน Visual Studio 2013 ได้อย่างไร
ฉันเริ่มโครงการใหม่และต้องการลองใช้ MVC 5 (ฉันเคยสร้างแอปพลิเคชันเว็บโดยใช้ MVC 4 มาก่อน) ใน Visual Studio 2013 ฉันคลิกโครงการใหม่และไปที่ Visual C #> เว็บ> Visual Studio 2012 (แม้ว่าฉันได้ติดตั้ง VS 2013 มันบอกว่า 2012 ในเมนู) และในรายการนั้นฉันมีแอปพลิเคชัน MVC 4 เท่านั้นไม่ใช่ 5 เฟรมเวิร์กในเมนูดร็อปดาวน์ถูกตั้งค่าเป็น. NET Framework 4.5.1 - และยังไม่มีอะไรเลย ฉันได้ตรวจสอบเครื่องมือ> ส่วนขยายและอัปเดตและค้นหา MVC 5 - แต่ไม่พบสิ่งที่เป็นทางการจาก Microsoft ฉันจะเพิ่ม MVC 5 ใน Visual Studio 2013 …

3
ฉันต้องการไฟล์ Global.asax.cs เลยหรือไม่หากฉันใช้คลาส OWIN Startup.cs และย้ายการกำหนดค่าทั้งหมดไปที่นั่น
ตัวอย่างเช่นในแอปพลิเคชัน ASP.NET MVC 5 ใหม่ล่าสุดที่สร้างจากเทมเพลต MVC กับบัญชีบุคคลถ้าฉันลบGlobal.asax.csคลาสและย้ายมันเป็นรหัสการกำหนดค่าไปยังStartup.cs Configuration()วิธีการดังต่อไปนี้ข้อเสียคืออะไร? public partial class Startup { public void Configuration(IAppBuilder app) { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); ConfigureAuth(app); } } Upsides สำหรับฉันคือเมื่ออัพเกรดแอปพลิเคชัน ASP.NET 4 เป็น ASP.NET 5 และการใช้ชิ้นส่วนที่ตอนนี้ต้องกำหนดค่าในคลาส Startup.cs ฉันไม่ได้พึ่งพาการฉีดและการกำหนดค่าอื่น ๆ ในสองคลาสที่แตกต่างกันซึ่งดูเหมือนว่าเกี่ยวข้องกัน เพื่อเริ่มต้นและการกำหนดค่า

4
ASP.NET DbContext Identity สับสน
แอป MVC 5 เริ่มต้นมาพร้อมกับรหัสชิ้นนี้ใน IdentityModels.cs - รหัสนี้สำหรับการดำเนินการ ASP.NET Identity ทั้งหมดสำหรับแม่แบบเริ่มต้น: public class ApplicationDbContext : IdentityDbContext<ApplicationUser> { public ApplicationDbContext() : base("DefaultConnection") { } } ถ้าฉันนั่งร้านตัวควบคุมใหม่โดยใช้มุมมองกับ Entity Framework และสร้าง "บริบทข้อมูลใหม่ ... " ในกล่องโต้ตอบฉันจะได้รับสิ่งนี้ที่สร้างขึ้นสำหรับฉัน: using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Web; namespace WebApplication1.Models { public class AllTheOtherStuffDbContext : DbContext { …

15
การเรียก webapi ที่ไม่ได้รับอนุญาตส่งคืนหน้าเข้าสู่ระบบแทน 401
ฉันจะกำหนดค่าโครงการ mvc / webapi ของฉันอย่างไรเพื่อให้วิธีการ webapi ที่เรียกจากมุมมองมีดโกนไม่ส่งคืนหน้าล็อกอินเมื่อไม่ได้รับอนุญาต มันเป็นแอปพลิเคชั่น MVC5 ซึ่งมีตัวควบคุม WebApi สำหรับการโทรผ่าน javascript ทั้งสองวิธีด้านล่าง [Route("api/home/LatestProblems")] [HttpGet()] public List<vmLatestProblems> LatestProblems() { // Something here } [Route("api/home/myLatestProblems")] [HttpGet()] [Authorize(Roles = "Member")] public List<vmLatestProblems> mylatestproblems() { // Something there } ถูกเรียกผ่านรหัสเชิงมุมดังต่อไปนี้: angular.module('appWorship').controller('latest', ['$scope', '$http', function ($scope,$http) { var urlBase = baseurl + '/api/home/LatestProblems'; …

3
IUserSecurityStampStore <TUser> ของ ASP.NET Identity คืออะไร
ดู ASP.NET Identity (การเป็นสมาชิกใหม่ใน ASP.NET) ฉันเจออินเทอร์เฟซนี้เมื่อใช้งานของตัวเองUserStore: //Microsoft.AspNet.Identity.Core.dll namespace Microsoft.AspNet.Identity { public interface IUserSecurityStampStore&lt;TUser&gt; : { // Methods Task&lt;string&gt; GetSecurityStampAsync(TUser user); Task SetSecurityStampAsync(TUser user, string stamp); } } IUserSecurityStampStoreถูกนำมาใช้โดยค่าเริ่มต้นEntityFramework.UserStore&lt;TUser&gt;ซึ่งเป็นหลักและได้รับการตั้งค่าTUser.SecurityStampคุณสมบัติ หลังจากการขุดเพิ่มเติมปรากฏว่า a SecurityStampคือสิ่งGuidที่สร้างขึ้นใหม่ที่ประเด็นสำคัญในUserManager(ตัวอย่างเช่นการเปลี่ยนรหัสผ่าน) ฉันไม่สามารถจริงๆถอดรหัสมากเกินนี้ตั้งแต่ผมตรวจสอบรหัสนี้ในการสะท้อนแสง ข้อมูลสัญลักษณ์และ async เกือบทั้งหมดได้รับการปรับให้เหมาะสม นอกจากนี้ Google ยังไม่ได้รับความช่วยเหลือมากนัก คำถามคือ: คืออะไรSecurityStampใน ASP.NET เอกลักษณ์และสิ่งที่มันใช้? ที่ไม่SecurityStampเล่นบทบาทใด ๆ เมื่อคุกกี้รับรองความถูกต้องจะถูกสร้างขึ้น? มีข้อ จำกัด ด้านความปลอดภัยหรือข้อควรระวังที่จำเป็นต้องดำเนินการหรือไม่? ตัวอย่างเช่นอย่าส่งค่านี้ต่อเนื่องให้กับลูกค้าหรือไม่ อัปเดต …

9
วิธีรับผู้ใช้ปัจจุบันและวิธีใช้คลาสผู้ใช้ใน MVC5
ฉันจะรับรหัสของผู้ใช้ที่เข้าสู่ระบบในปัจจุบันในMVC 5 ได้อย่างไร ฉันลองใช้คำแนะนำ StackOverflow แต่ดูเหมือนว่าไม่ใช่สำหรับ MVC 5 นอกจากนี้ MVC 5 แนวปฏิบัติที่ดีที่สุดในการมอบหมายสิ่งของให้กับผู้ใช้คืออะไร? (เช่นUserควรมีItems. ฉันควรเก็บผู้ใช้IdในItem? ฉันสามารถขยายUserชั้นเรียนที่มีList&lt;Item&gt;คุณสมบัตินำทาง? ฉันกำลังใช้ "บัญชีผู้ใช้ส่วนบุคคล" จากเทมเพลต MVC พยายามเหล่านี้: ฉันจะรับผู้ใช้ปัจจุบันในแอปพลิเคชัน MVC ได้อย่างไร วิธีรับผู้ใช้ปัจจุบันใน ASP.NET MVC รับรหัสผู้ใช้ - สิ่งนี้จะส่งผลต่อไปนี้: 'Membership.GetUser ()' เป็นโมฆะ

11
GlobalConfiguration.Configure () ไม่มีอยู่หลังจากการโยกย้าย Web API 2 และ. NET 4.5.1
ฉันเพิ่งเริ่มทำตามคำแนะนำนี้เพื่อโยกย้ายโครงการของฉันไปยัง. NET 4.5.1 และ Web Api 2 สิ่งแรกที่นักพัฒนา MS Anderson ขอให้คุณทำคือเปลี่ยน: WebApiConfig.Register(GlobalConfiguration.Configuration); ถึง GlobalConfiguration.Configure(WebApiConfig.Register); ในไฟล์ global.asax แต่สิ่งนี้ทำให้ฉันมีข้อผิดพลาดเมื่อฉันพยายามสร้าง: ข้อผิดพลาด 1 'System.Web.Http.GlobalConfiguration' ไม่มีคำจำกัดความสำหรับ 'กำหนดค่า' ปัจจุบันโครงการของฉันใช้ MVC 5 และ Web Api 2 และ. NET 4.5.1 แต่ฉันคิดว่า System.Web.Http ยังคงคิดว่าเป็นรุ่น. NEt 4.0 ฉันจะแก้ไขสิ่งนี้ได้อย่างไร ขอบคุณ. แก้ไข: นี่คือการผูกการชุมนุมของฉัน: &lt;assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"&gt; &lt;dependentAssembly&gt; &lt;assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31BF3856AD364E35" culture="neutral"/&gt; &lt;bindingRedirect oldVersion="0.0.0.0-5.0.0.0" …

1
วิธีเพิ่ม Web API ในโครงการ ASP.NET MVC (5) Web Application ที่มีอยู่
สมมติว่าคุณลืมทำเครื่องหมายที่ช่องทำเครื่องหมาย Web API (เพิ่มในโครงการ) เมื่อสร้างโครงการ MVC (5) ใหม่คุณต้องทำอะไรเพิ่ม Web API เพื่อให้ทำงานได้ มีคำถามเกี่ยวกับการย้ายข้อมูลจำนวนมาก แต่ดูเหมือนว่าจะไม่มีขั้นตอนที่สมบูรณ์และทันสมัยสำหรับการเพิ่ม Web API ในโครงการ MVC 5 และดูเหมือนว่าจะเปลี่ยนไปจากคำตอบเดิมบางส่วน เพิ่ม Web API ใน MVC 4 การเพิ่ม GlobalConfiguration.Configure (WebApiConfig.Register) MVC 4

26
Visual Studio 2013 IntelliSense หยุดทำงานสำหรับตัวควบคุม ASP.NET MVC5
ฉันกำลังประสบปัญหาแปลก ๆ ในโครงการ Visual Studio 2013 ASP.NET MVC 5 ของฉัน ทันใดนั้น IntelliSense ในคลาสคอนโทรลเลอร์ของโปรเจ็กต์ MVC 5 ไม่ทำงานเลย ฉันมีโปรเจ็กต์ไลบรารีคลาสอื่นในโซลูชันของฉันและ IntelliSense กำลังทำงานในไฟล์โปรเจ็กต์ไลบรารีคลาสเหล่านั้น แต่ปัญหาอยู่ในโปรเจ็กต์ MVC เท่านั้น โดยปกติแล้วปัญหาประเภทนี้จะแก้ไขได้โดยการรีสตาร์ท Visual Studio: ไม่เพียง แต่ฉันรีสตาร์ท Visual Studio แต่ฉันยังรีสตาร์ทคอมพิวเตอร์ด้วยและปัญหา IntelliSense ไม่ได้รับการแก้ไขเลย มีขั้นตอนอื่นใดบ้างที่ทำให้ฉันใช้ IntelliSense กลับคืนมาได้

6
วิธีการขยายคุณสมบัติที่มีอยู่ของ User.Identity
ฉันใช้ MVC5 Identity 2.0 เพื่อให้ผู้ใช้ล็อกอินเข้าสู่เว็บไซต์ของฉันซึ่งรายละเอียดการตรวจสอบความถูกต้องจะถูกเก็บไว้ในฐานข้อมูล SQL Asp.net Identity ได้รับการปรับใช้ในรูปแบบมาตรฐานตามที่พบได้ในแบบฝึกหัดออนไลน์มากมาย คลาส ApplicationUser ใน IdentityModels ได้รับการขยายเพื่อรวมคุณสมบัติที่กำหนดเองบางอย่างเช่น OrganizationId จำนวนเต็ม แนวคิดคือผู้ใช้จำนวนมากสามารถสร้างและกำหนดให้กับองค์กรทั่วไปเพื่อวัตถุประสงค์ด้านความสัมพันธ์ของฐานข้อมูล public class ApplicationUser : IdentityUser { public async Task&lt;ClaimsIdentity&gt; GenerateUserIdentityAsync(UserManager&lt;ApplicationUser&gt; manager) { // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); // Add custom user …

4
วิธีติดตั้งเซิร์ฟเวอร์ oauth2 ใน ASP.NET MVC 5 และ WEB API 2 [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่? อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการเมื่อปีที่แล้ว ปรับปรุงคำถามนี้ ก่อนอื่นฉันจะร่างโครงการของฉัน: สำหรับการฝึกงานของฉันฉันต้องเพิ่มฟังก์ชันการทำงานให้กับระบบที่มีอยู่ ไคลเอ็นต์ของบุคคลที่สามต้องสามารถเข้าถึงข้อมูลจาก AX Webservices เมื่อได้รับอนุญาตจากผู้ใช้ผ่าน OAuth2 ฉันเข้าใจว่าฉันจำเป็นต้องสร้าง 'บริการเว็บพร็อกซี' โดยที่ไคลเอนต์สามารถโทรออกและเรียกใช้บริการ AX ได้ แต่ฉันไม่แน่ใจเกี่ยวกับส่วน OAuth2 เล็กน้อย บทแนะนำและคำแนะนำส่วนใหญ่เกี่ยวกับการใช้ข้อมูลประจำตัวของ ASP.NET สำหรับ Facebook หรือ Google-logins ฉันไม่ต้องการสิ่งนั้นฉันต้องใช้ข้อมูลรับรองที่มีอยู่ดังนั้นฉันจึงต้องสร้างบริการ OAuth2 ของฉันเอง ฉันพบว่ามันยากที่จะหาบทเรียนคำแนะนำหรือคำอธิบายเกี่ยวกับเรื่องนี้ ฉันเข้าใจ OAuth2 และสิ่งที่ต้องทำ แต่ฉันไม่เคยทำสิ่งนี้มาก่อนและพบว่ามันยากที่จะเริ่มต้น สิ่งที่ใกล้เคียงที่สุดกับสิ่งที่ฉันต้องการที่ฉันพบคือลิงก์ github repoนี้ แต่โซลูชันไม่ได้สร้างขึ้น สิ่งที่ฉันคิดคือการสร้างเว็บไซต์ ASP.NET MVC ที่ลูกค้า (บุคคลที่สาม) สามารถลงทะเบียนด้วยตนเองและรับรหัสลูกค้าของตนได้ ด้วย ASP.NET …

3
ข้อดีของการใช้ async กับ MVC5 คืออะไร?
อะไรคือความแตกต่างระหว่าง: public ActionResult Login(LoginViewModel model, string returnUrl) { if (ModelState.IsValid) { IdentityResult result = IdentityManager.Authentication.CheckPasswordAndSignIn(AuthenticationManager, model.UserName, model.Password, model.RememberMe); if (result.Success) { return Redirect("~/home"); } else { AddErrors(result); } } return View(model); } และ: [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task&lt;ActionResult&gt; Login(LoginViewModel model, string returnUrl) { if (ModelState.IsValid) { IdentityResult result = …

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