Tag: asp.net mvc 5

ASP.NET MVC 5 – 创建自己的登录

HY, 我是MVC 5(或任何其他MVC)的新手。 我想通过注册创建自己的自定义登录。 有人能指点我吗? 登录应该有一个简单的电子邮件和密码文本框。 注册应该具有存储在表(用户)中的第一/姓氏,年龄等附加数据以及具有要选择的角色的下拉框(存储在表“角色”中)。 成功登录/注册后,应将用户重定向到仪表板。 或者有一个关于MVC 5的好教程..我刚刚找到一个用于MVC 4 。 感谢帮助 :)

如何在MVC 5中的单个Ajax POST请求中发送ViewModel和文件?

我有一个ASP.NET MVC 5应用程序。 我正在尝试使用Model数据发送POST请求,还包括用户选择的文件。 这是我的ViewModel(为简洁起见而简化): public class Model { public string Text { get; set; } public long Id { get; set; } } 这是控制器动作: [HttpPost] public ActionResult UploadFile(long userId, Model model) { foreach (string file in Request.Files) { // process files } return View(“Index”); } Html输入元素: 和JavaScript代码: $(‘#txtUploadFile’).on(‘change’, function (e) { var data = […]

具有Identity Auth的MVC应用程序中的Web API Basic Auth

所以我有一个使用Identity进行身份validation的C# MVC应用程序。 我现在需要通过Web API向我的一些客户公开一些内容。 而不是构建单独的应用程序,项目,部署……我只是在现有项目中添加了一个API Controller 。 为了让我的客户保持简单,我决定使用Basic Auth ,而是选择强制我的客户使用SSL连接到我的API。 我已经按照这个非常有用的教程在我的API中实现Basic Auth : http : //www.piotrwalat.net/basic-http-authentication-in-asp-net-web-api-using-message-handlers/ 问题是,他们的指令接管整个应用程序的Auth … 我需要我的MVC应用程序继续使用它当前正在使用的Identity Auth ,并希望滚动我自己的自定义属性(如[APIAuthorize] ),以便它只适用于我的API Controller 。 我可能会破解并试图让它工作,但由于这涉及到安全性,我决定请求一些有关如何最好地实现这一点的帮助。 具体来说,我需要知道1)我在Global.asax做了什么(如果有的话),因为上面的URL建议我这样做: protected void Application_Start() { GlobalConfiguration.Configuration.MessageHandlers .Add(new BasicAuthMessageHandler(){ PrincipalProvider = new DummyPrincipalProvider() }); //… } 但同样,这会将身份validation接管到整个应用程序… 2)我需要在自定义身份validation属性中做什么才能使所有这些工作无缝地完成。 当然,如果有更好的方法来完成所有这些(没有创建单独的应用程序或增加我的客户的实施难度),那么我全都耳朵。

MVC RadiobuttonFor Razor如何使标签点击?

到目前为止,我正试图用剃刀语法创建一个radiobuttonlist,我已经想出了这个 @foreach (var p in Model) { @Html.RadioButton(“name”, “1”, false, new { onCLick = “ShowOption(this)”, id = p.id.ToString() }) @Html.Label(p.id.ToString(), p.name) } 但标签与radiobutton无关。

在ASP.NET MVC上提供静态文件(C#)

我是.NET框架的新手,我想知道什么是提供静态内容和访问用户生成内容的最佳方式。 假设我有以下文件: logo.jpg document.pdf etc.doc 我应该把它放在哪里(在哪个文件夹上)? 我如何访问它? 最后,把它带入另一个层面。 假设我有一个允许用户上传文件的网络应用程序(比如说一些照片)。 我想知道的是我的文件夹/目录的结构应该如何? 在django / CI中,我会有一个文件夹,如下所示: application / {all-web-app-related-folder-and-file-goes-here} uploads / {all-related-user-generated-content-goes-here-categorated-by-file-type} assets / {css -javascript文档,将-GO-这里} 注意:我没有做任何事情或做过任何尝试。 仅仅因为我不知道如何访问try静态内容。 我曾经尝试访问位于Content / Scripts文件夹中的* .css或* .js文件。 即:localhost:12345 / Scripts / jquery.js 事实certificate,它不是ASP.NET MVC中的简单过程 哦顺便说一句,在某些情况下,我也想从我的css文件中访问我的图像。 这给我带来了另一个困惑。 编辑1:我读了下面的文章 http://sofzh.miximages.com/c%23/ picture.png“)” 如果我想访问图像文件,上面的示例是合适的。 但我不确定这是否是理想的做法。 然而,这是我目前可以遇到的最简单的解决方案(或者我应该说,相当天真)。 任何提示将不胜感激。

ASP.NET身份确认电子邮件是纯文本而不是HTML

在ASP.NET MVC5 C#应用程序中,我使用标准代码在用户注册时发送确认电子邮件,这是我在多个项目中完成的事情: var callbackUrl = Url.Action(“ConfirmEmail”, “Account”, new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); await UserManager.SendEmailAsync(user.Id, “Confirm your account”, “Please confirm your account by clicking here”); 通常,当收件人收到电子邮件时,其内容类型为text / html。 但是,在这一个应用程序中,电子邮件以内容类型text / plain到达,内容不呈现为html,它呈现为纯文本。 它应该是这样的: 请点击此处确认您的帐户 但它看起来像这样: Please confirm your account by clicking here 我搜索了文档,但找不到任何表明为什么会这样或者确实如何改变这种行为的信息。 我还更新了最新版本的Microsoft ASP.NET身份核心(2.2.1),这可能有所帮助,但它对此问题没有任何影响。 我还测试了从Google Apps电子邮件帐户发送的另一个组织(我使用其他具有相同代码的应用程序发送此确认电子邮件并知道它以html格式发送),以防有重要的设置。 关于它为什么以text / plain发送的任何想法以及我如何解决这个问题? […]

如何格式化Html.TextBoxFor中的DateTimeOffset?

我有一个基于Bootstrap 3和ASP.NET MVC 5的视图,用于编辑用户配置文件信息,但它在表单上以不正确的格式显示。 数据库是Neo4j,我正在使用Neo4jClient与.NET中的数据库进行交互。 Neo4jClient需要使用DateTimeOffset对象而不是DateTime对象来使用Json.NET的序列化程序传递给Neo4j的REST接口。 因此,我的模型使用DateTimeOffset对象来存储用户的生日。 这是我视图中的表单字段: Birthday @Html.TextBoxFor(model => model.Birthday, new { @class = “form-control input-md datepicker”, placeholder = “Birthday” }) Please enter your birthday 打印到表单时,日期格式如下: M/dd/yyyy hh:mm:ss t -zzz 但是,它应该有这种格式,因为我们只需要日期部分: MM/dd/yyyy 我已经尝试在model属性上使用DataFormatString注释,但它仍然没有以正确的格式显示: [DisplayFormat(DataFormatString = “{0:MM/dd/yyyy}”, ApplyFormatInEditMode = true)] public DateTimeOffset Birthday { get; set; } 此注释是否仍适用于DateTimeOffset对象? 如何修复字符串格式?

如何在IAuthenticationFilter实现中设置WWW-Authentication标头?

我正在使用MVC5的IAuthenticationFilter接口实现基本身份validation。 我的理解是,现在这是首选方法,而不是使用DelegatingHandler。 我已经开始工作,但响应中没有返回www-authenticate标头。 这是我对ChallengeAsync的实现: public async Task ChallengeAsync(HttpAuthenticationChallengeContext context, CancellationToken cancellationToken) { var result = await context.Result.ExecuteAsync(cancellationToken); if (result.StatusCode == HttpStatusCode.Unauthorized) { result.Headers.WwwAuthenticate.Add(new AuthenticationHeaderValue(“Basic”, “realm=localhost”)); } } 如果我在AuthenticateAsync中设置它,则会返回标头,但我认为我应该在ChallengeAsync中设置它。 示例实现很难找到。

使用MVC 5 RouteArea属性时,无法找到默认区域视图

我有一个有多个领域的MVC5项目。 我有一个默认区域(名为Default ),在其中有一个默认控制器(名为DefaultController )。 这可以在现场路线上访问。 [RouteArea] public class DefaultController : Controller { [Route] public ActionResult Index() { return View(“Index”); } } public static void RegisterRoutes(RouteCollection routes) { routes.LowercaseUrls = true; routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); routes.MapMvcAttributeRoutes(); routes.MapRoute( name: “Default”, url: “{controller}/{action}/{id}”, defaults: new { controller = “Default”, action = “Index”, id = UrlParameter.Optional }, namespaces: new[] { “MyProject.Areas.Default.Controllers” } […]

在用Identity注册时为用户设置角色的正确方法

我有一个问题,我是新手,但我仍然想知道在注册时为用户分配角色的正确方法是什么? 我这里有一个代码: [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser() { UserName = model.UserName }; RoleManager = new RoleManager(new RoleStore(new ApplicationDbContext())); IdentityRole role = new IdentityRole(“Admin”); await RoleManager.CreateAsync(role); // Store Gender as Claim user.Claims.Add(new IdentityUserClaim() { ClaimType = ClaimTypes.Gender, ClaimValue = “Male” }); //user.Roles.Add(new IdentityUserRole() { […]