ASP.NET Core MVC是一个轻量级的表示框架,用于使用ASP.NET Core创建动态网站。它允许创建基于控制器的MVC站点,或查看基于模型的Razor页面。 MVC包括路由,模型绑定和验证,过滤器,Web API和Razor视图引擎等功能。
ASP.NET Core 5 错误:“class”是保留字,不能在隐式表达式中使用
我正在将旧应用程序从 ASP.NET MVC 5 (System.Web.Mvc v5.2.7.0) 迁移到 ASP.NET Core 5。 在 ASP.NET MVC 5.* 中,此代码有效: @{ var htmlAttributes = new {@class="x"}; } 我用过
如何将动态创建的 HTML 字符串渲染到 Asp.NET Core 中的 razor 视图中
我编写了如下的html帮助器方法 公共静态类 CustomHtmlHelper { 公共静态 HtmlString SetMenuRespectiveWithRoles(此 IHtmlHelper html,HttpContext 上下文) {
我希望能够在操作中读取请求正文,同时仍然使用默认的 MVC 行为,其中涉及使用 [FromBody] 参数进行发布。据我所知,我需要中间件来完成
ASP.NET MVC 服务器登录无效后,如何捕获返回的 Json 响应中的错误文本并显示在 Angular 客户端中?
Angular 9 客户端登录页面 我想在 元素中显示特定返回的错误消息,而不是当前显示的通用消息。 Angular 9 客户端登录页面 我想在 <h4> 元素中显示具体返回的错误消息,而不是当前显示的通用消息。 <div class="navbar bg-info mb-1"> <a class="navbar-brand text-white">The ACTS Factory Authentication</a> </div> <!-- I want to put the specific error condition here --> <h4 *ngIf="showError" class="p-2 bg-danger text-white"> Invalid username or password! </h4> <form novalidate #authForm="ngForm" class="m-3" title="LoginForm"> <div class="form-group"> <label>Name:</label> <input #name="ngModel" name="name" class="form-control" [(ngModel)]="authService.name" required /> <div *ngIf="name.invalid" class="text-danger"> Please enter your user name </div> </div> <div class="form-group"> <label>Password:</label> <input type="password" #password="ngModel" name="password" class="form-control" [(ngModel)]="authService.password" required /> <div *ngIf="password.invalid" class="text-danger"> Please enter your password </div> </div> <div class="text-center pt-2"> <button type="button" class="btn btn-primary font-weight-bold" [disabled]="authForm.invalid" (click)="login()"> Please Login </button> </div> </form> Angular 9 组件 我正在从这个 Angular 客户端组件登录。当响应状态代码为 400 Bad Request 时,result 为 false,一般错误消息显示在 <h4> 元素中。这里的login()方法订阅了认证服务存储库中的Login()方法。返回的响应对象或包含错误文本的属性必须返回此处才能添加到 html 显示中。 import { Component } from "@angular/core"; import { AuthenticationService } from "./authentication.service"; @Component({ templateUrl: "authentication.component.html" }) export class AuthenticationComponent { showError: boolean = false; constructor(public authService: AuthenticationService) { } login() { this.showError = false; this.authService.login().subscribe(result => { this.showError = !result }); } } Angular 9 登录方法在客户端认证服务存储库中 此登录方法调用数据源的可观察 login() 方法,确定是否已收到有效(真或假)响应,并将响应中包含的返回属性映射到局部变量。 login(): Observable<boolean> { this.authenticated = false; return this.dataSource.login(this.userName, this.userPwd).pipe( map(response => { if (response) { this.callbackUrl = null; this.authenticated = true; this.password = null this.router.navigateByUrl(this.callbackUrl || "appmenu"); } this.profileEmail = null; this.profilePhone = null; if (this.dataSource.teamUser) { this.isTeamUser = this.dataSource.teamUser; } else { this.isTeamUser = false; } return this.authenticated = true; }), catchError(e => { this.authenticated = false; [I have tried to capture the error text here] return of(false); })); } Angular 9 客户端身份验证数据源登录方法 这是客户端的数据源;它向服务器发送http请求并接收http响应。它还将响应中的属性映射到局部变量,确定目标 URL,并跟踪必要的标头。 auth_Header: HttpHeaders = new HttpHeaders(); auth_token: string = null; login(theName: string, thePassword: string): Observable<boolean> { return this.http.post<any>("/api/account/login", { name: theName, password: thePassword }) .pipe(map(response => { [I have tried capturing the error here and exiting with response.success = false] this.auth_token = response.success ? response.token : null; // JWT token generated in server-side AccountController this.auth_Header = this.auth_Header.set("Authorization", "Bearer<" + this.auth_token + ">"); this.authCookie.JWTauthcookie = this.auth_token; // save for the other datasources this.loginTime = response.loginTime; // to return user's registered email and phonenumber to client this.profileEmail = ""; this.profileEmail = response.profileEmail; this.profilePhone = ""; this.profilePhone = response.profilePhone; } this.isAuthenticated = true; return response.success; })); ASP.NET Core MVC 帐户控制器 这是处理登录请求的 ASP.NET Core MVC 控制器,在 ASP.NET Core Identity 中搜索用户名和密码(代码中未显示),并在登录成功时返回 200 状态代码和 JSON 对象。我现在返回两个特定的登录错误条件(未找到用户或密码无效),我想在无效登录尝试后在客户端上显示它们。我尝试使用 OK 而不是 BadRequest() 状态代码 400 返回错误。但是,这对客户端没有帮助。 任何和所有的想法将不胜感激。谢谢。 [HttpPost("/api/account/login")] public async Task<IActionResult> Login([FromBody] LoginViewModel creds) { LoginError = ""; bool loginResult = false; object myReturnObject = new object(); if (ModelState.IsValid) { // go look for existing Identity user and try to sign in loginResult = await DoLogin(creds); if (loginResult) { myReturnObject = "{ " + '\n' + " " + '"' + "success" + '"' + ":" + '"' + signInResult.Succeeded.ToString() + '"' + "," + '\n' + " " + '"' + "token" + '"' + ':' + '"' + bearerJWTokenString + '"' + "," + '\n' + " " + '"' + "loginTime" + '"' + ':' + '"' + DateTime.Now.ToShortTimeString() + '"' + "," + '\n' + " " + '"' + "profileEmail" + '"' + ':' + '"' + profileEmail + '"' + "," + '\n' + " " + '"' + "profilePhone" + '"' + ':' + '"' + profilePhone + '"' + "," + '\n' + " " + '"' + "team" + '"' + ':' + '"' + loggedInUserType.ToString() + '"' + "," + '\n' + "}"; // good login returns this object as a Json file in // the HTTP Response body return Ok(myReturnObject); } else { // if bad username or pwd - this returns http status // code 400 "Bad Request" plus the LoginError json object return BadRequest("{" + '\n' + " " + '"' + "InvalidLogin" + '"' + ':' + '"' + "True" + '"' + '\n' + " " + '"' + "LoginError" + '"' + ':' + '"' + LoginError + '"' + '\n' + "}"); } } // bad model state returns - http error 400 Bad Request return BadRequest(ModelState.ValidationState.ToString()); } 客户端返回的JSON对象截图: .subscribe( data => {/* success action*/}, (error: HttpErrorResponse) => {/* error action */ console.error(error)}, () => {/* complite (after success OR error) action */} )
“用户安全标记不能为空。”在 ASP.NET Core Identity 中添加/删除用户角色时出错
我正在尝试向用户添加角色(如果它们与已有的角色不匹配)并删除那些匹配的角色,但出现以下错误: 用户安全标记不能为空。
ASP.NET Core Identity 不注入 UserManager<ApplicationUser>
我有一个较旧的 asp.net core 身份数据库,我想将一个新项目(Web api)映射到它。 只是为了测试,我复制了 Models 文件夹以及上一页中的 ApplicationUser 文件...
我使用 ASP.NET Core MVC 最新版本创建了新项目。它表现出一种奇怪的行为。 我的代码: 公共类 VerificationController(TimeProvider timeProvider) :控制器 { [路线(“电子邮件-
JWT ASP.NET Core MVC 检查角色时出现授权问题
身份验证出现问题,已在此处解决。现在授权有问题,如果我设置参数Roles,就会出错。 程序.cs: 命名空间 MySteamDBMetacritic { ...
我正在开发一个使用 ASP.NET Core 标识的 ASP.NET Core MVC 6 应用程序,并且我面临着一个问题,试图找出如何使用 UserManager 类。 但 UserManager 总是为 null
如何使用 ASP.NET Core MVC 正确实现 C# 类?
作业是创建一个 ASP.NET Core MVC Web 应用程序,其中包含 Student 和 StudentWorker 类。然后,您让用户输入 StudentWorker 对象的信息(id、姓名、时薪……
在 ASP.NET Core 中发布 jQuery 数据表会导致 400 错误
我在前端设置了一个 DataTables 表,并进行服务器端处理,因为它是一个大型数据集。我已按如下方式设置 Ajax 调用,以回发到同一应用程序中的 MVC 控制器。 一个...
我正在开发一个使用 ASP.NET Core Identity 的 ASP.NET Core 6 MVC 应用程序。当我尝试使用 UserManager 创建新用户时,出现以下错误: 用户名“ ”无效,只能包含
IViewLocalizer 仅显示 .resx 文件中的键而不是值
我在 ASP.NET Core 本地化方面遇到问题。我想将该方法与 IViewLocalizer 一起使用。我有这个 Program.cs: 使用 xxx.Data; 使用 Microsoft.AspNetCore.Identity; 使用 Microsoft.AspNetCore。
IViewLocalizer 仅显示 .resx 文件中的密钥
我在 ASP.NET Core 本地化方面遇到问题。我想使用 IViewLocalizer 的方法。我有这个程序.cs: 使用 xxx.Data; 使用 Microsoft.AspNetCore.Identity; 使用 Microsoft.AspNetCore。
C# ASP.NET Core 7 MVC Web 应用程序在某些 API 调用上带有客户端证书
我有一个 ASP.NET Core 7 MVC Web 应用程序,它具有完整的用户身份验证,但也有几个 API 端点。我们需要允许使用 cli 对这些端点进行身份验证...
我在 AdminController 中有一个 EditEmployee 方法。当我提交编辑表单时,它显示错误 404。该方法似乎无法识别我绑定的 EmployeeId,但我无法弄清楚 [http邮报] [
JQuery Select2 下拉列表无法在 MVC 中设置文本
我正在使用 select2 jquery 插件。我无法将文本设置/分配给选择控件。我使用带有触发功能的 select2 来设置值。首先我采取的控制是
我有以下情况:在.NET框架中可以为API控制器及其方法定义全局路由。通过获取默认值并添加控制器路由,您可以...
如何在ASP.NET Core 8 MVC项目中获取IP地址
我正在创建一个 ASP.NET Core 8 MVC 项目并尝试使用以下代码获取 IP 地址: var RemoteIpAddress = HttpContext.Connection.RemoteIpAddress; 但是,代码抛出异常: 地址...
我在将值输入到 ViewModel 时遇到问题,因为在通过 cshtml 输入值后它不断返回 null。 我在cshtml中输入的值 点击确认后 创建ViewModel.cs 公共...