asp.net-roles 相关问题


MVC ASP.NET Core Identity,创建登录、注册操作。 AuthController

公共类AuthController:控制器 { SignInManager _signInManager { 获取; } UserManager _userManager { 获取; } 角色管理器 public class AuthController : Controller { SignInManager<AppUser> _signInManager { get; } UserManager<AppUser> _userManager { get; } RoleManager<IdentityRole> _roleManager { get; } public AuthController(SignInManager<AppUser> signInManager, UserManager<AppUser> userManager, RoleManager<IdentityRole> roleManager) { _signInManager = signInManager; _userManager = userManager; _roleManager = roleManager; } public IActionResult Login() { return View(); } [HttpPost] public async Task<IActionResult> Login(string? returnUrl,LoginVM vm) { AppUser user; if (!ModelState.IsValid) { return View(vm); } if (vm.UsernameOrEmail.Contains("@")) { user = await _userManager.FindByEmailAsync(vm.UsernameOrEmail); } else { user = await _userManager.FindByNameAsync(vm.UsernameOrEmail); } if (user == null) { ModelState.AddModelError("", "Username or password is wrong"); return View(vm); } var result = await _signInManager.PasswordSignInAsync(user, vm.Password, vm.IsRemember, true); if (!result.Succeeded) { if (result.IsLockedOut) { ModelState.AddModelError("", "Too many attempts wait until " + DateTime.Parse(user.LockoutEnd.ToString()).ToString("HH:mm")); } else { ModelState.AddModelError("", "Username or password is wrong"); } return View(vm); } if (returnUrl != null) { return LocalRedirect(returnUrl); } return RedirectToAction("Index","Home"); } public IActionResult Register() { return View(); } [HttpPost] public async Task<IActionResult> Register(RegisterVM vm) { if (!ModelState.IsValid) { return View(vm); } var user = new AppUser { Fullname = vm.Fullname, Email = vm.Email, UserName = vm.Username }; var result = await _userManager.CreateAsync(user, vm.Password); if (!result.Succeeded) { foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } return View(vm); } var roleResult = await _userManager.AddToRoleAsync(user, Roles.Member.ToString()); if (!roleResult.Succeeded) { ModelState.AddModelError("", "Something went wrong. Please contact admin"); return View(vm); } return View(); } public async Task<IActionResult> Logout() { await _signInManager.SignOutAsync(); return RedirectToAction("Index", "Home"); } public async Task<bool> CreateRoles() { foreach (var item in Enum.GetValues(typeof(Roles))) { if (!await _roleManager.RoleExistsAsync(item.ToString())) { var result = await _roleManager.CreateAsync(new IdentityRole { Name = item.ToString() }); if (!result.Succeeded) { return false; } } } return true; } } } 所以,我在代码中搞乱了登录、注册和注销,现在这个 RoleManager 的事情让我摸不着头脑。我只是想为我的管理员用户提供一些额外的权力,但我有点不知道该怎么做。如果您能用简单的语言解释步骤或需要进行哪些更改来帮助我,那就太棒了。 我的目标是让管理员用户在我的系统中体验更好,您对此的建议非常有用。尝试了解 RoleManager 的事情以及如何为我的管理员用户提供更多能力。您直接的帮助可能会对我解决这个问题产生很大的影响! 定义管理员角色 创建管理员用户 更新注册流程: var roleResult =等待_userManager.AddToRoleAsync(用户,vm.IsAdmin? Roles.Admin.ToString() : Roles.Member.ToString()); 使用管理员角色: [授权(角色=“管理员”)] 公共 IActionResult AdminDashboard() { // 特定于管理的逻辑 } 5.提升管理能力: if (User.IsInRole("管理员")) { // 特定于管理的逻辑 } 中间件配置: services.AddIdentity() .AddRoles() .AddEntityFrameworkStores(); 7.创建角色方法: 公共无效配置(IApplicationBuilder 应用程序,IHostingEnvironment env) { // 其他中间件配置 // Create roles during application startup var authController = new AuthController(/* inject your dependencies here */); authController.CreateRoles().GetAwaiter().GetResult(); }


ASP.NET Web 表单和 ASP.NET 网页

ASP.NET Web 窗体和 ASP.NET 网页有什么区别? 这里说网页和网络表单是不同的方法。


为什么asp.net身份需要存储外部登录详细信息?

当我们使用外部身份验证(例如 Google)处理 ASP.NET 身份并使用 IdentityDbContext 时,由 ASP.NET 身份创建的下表如下: 创建表 [dbo]。[


ASP.Net Core 容器在自定义端口 8080 上运行,但 ASP.Net 容器在 Docker Windows 中在固定端口 80 上运行

我根据以下图片制作了两个容器: ASP.NET核心 mcr.microsoft.com/dotnet/aspnet:8.0.0-windowsservercore-ltsc2019 网络应用程序 来自 mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsserv...


ASP.NET Core 6 中的 AddEndpointsApiExplorer 是什么

我正在将 ASP.NET Core API 项目从 v5 升级到 v6。 v5 中的服务配置: services.AddSwaggerGen(); v6 中的服务配置: builder.Services.AddEndpointsApiExplorer(); // 这是什么? 建设者。


ASP.NET Core 应用程序中对“Microsoft.WindowsDesktop.App”的意外要求

我的 ASP.NET Core (.NET 6.0) API 应用程序的 Visual Studio 解决方案最近发生的更改导致需要“Microsoft.WindowsDesktop.App”,框架条目为


ASP.NET Core razor 页面 - 使用 asp-route-

我已经为我的 asp.net core 项目 (.NET 8) 实现了基于路由的本地化。基本上满足这些要求: 当请求根(path = '/')时,CultureInfo.CurrentCulture 是...


需要演示 DataTypeAttribute 的这种用法(如 Microsoft 教程中所述)

我正在从 ASP.NET MVC 迁移到 ASP.NET Core,同时学习此页面上的 Microsoft 文档 https://learn.microsoft.com/en-us/aspnet/core/tutorials/razor-pages /验证?view=aspn...


如何在 ASP.NET MVC 4 中为 CSP 使用动态随机数

我在 ASP.NET MVC 4 中开发了 MVC 应用程序。我在几个页面中使用了 javascript。一些 javascript 被引用为 @Scripts.Render(“~/Scripts/bootstrap”) @Scripts.Render("~/Sc...


ASP.NET MVC 中的自动刷新

在网络表单中我会这样做 函数 timedRefresh(timeoutPeriod) { setTimeout("location.reload(true);", timeoutPeriod); } ...


.net core 3.1 中 [RoutePrefix("api/{controller})] 的替代品是什么?

我正在迁移Asp.net(.net框架)项目Asp.net core(.net core 3.1框架)。 我无法找到替代方案 [RoutePrefix("api/{controller})] 在.net core 3.1 中? 任何想法,如何...


在 ASP.NET Core 7 WebAPI 上运行 React-App 构建

我有一个 ASP.NET Core 7 WebAPI,有很多路由,例如: domain.com/Api/Product/GetAll domain.com/Api/Product/Delete/ domain.com/Api/Product/Create ... 我有一个反应应用程序,我需要使用它


ASP.NET Core Json 对象的格式很奇怪,带有 \u0022

我计划从 ASP.NET Core 控制器执行 JSON 响应,但它并不像我想象的那么简单。 像 {"ConfigValue":"192.168.1.125:1880"} 这样的简单字符串应该是


找不到 ASP.NET Core Web 应用程序(.NET Core)项目模板

我目前正在实习的公司学习上级发给我的 C# 教程。该教程可能有点旧,因为它说“选择 ASP.NET Core Web 应用程序...


使用 EF Core 和 GraphQL 在 ASP.NET Core 中保留唯一的连续组编号

我正在使用 ASP.NET Core Minimal API (.NET 7) 和 Entity Framework Core、HotChocolate(用于 GraphQL)和 Microsoft SQL Server 数据库开发 API 后端。我遇到了一个特定的挑战...


不支持关键字:“服务器”。旧的Asp.Net系统

我有一个使用 .Net Framework 4.0、ASP.Net、EntityFramework、C# 和 SQL Server 2014 的旧系统。 我在尝试运行系统时不断收到错误消息,它以前可以工作! - “服务器错误...


VS2017:为什么razor项目仍然引用MVC?

我对 ASP.NET Core 2.0 的 MVC 和 razor 项目非常困惑。 在 Visual Studio 2017 中我执行以下操作: 新项目 Web ASP.NET Core 应用程序 (C#) Web 应用程序(不是 Web 应用程序 MV...


在 ASP.NET Core 中将数据保存到数据库时遇到问题

创建菜谱时,我的 ASP.NET Core MVC 应用程序遇到问题。该问题涉及无法将配方成分保存到数据库中。虽然主要食谱详细说明...


为什么 Razor Pages 项目仍然引用/依赖 MVC?

我对 ASP.NET Core 2.0 的 MVC 和 Razor Pages 项目非常困惑。 在 Visual Studio 2017 中我执行以下操作: 新项目 Web ASP.NET Core 应用程序 (C#) 网络应用程序(不是网络应用程序...


ASP.NET Core 返回“名称‘Ajax’在当前上下文中不存在”

如果我在 ASP.NET 4.5 中启动一个新项目,选择管理 NuGet 包,搜索 Ajax,然后安装 Ajax Unobtrusive,然后我可以进入我的 .cshtml 文件并输入 @Ajax.___,例如@Ajax.beginForm。 我...


为什么 Razor Pages 项目仍然引用/依赖 MVC?

我对 ASP.NET Core 2.0 的 MVC 和 Razor Pages 项目非常困惑。 在 Visual Studio 2017 中我执行以下操作: 新项目 Web ASP.NET Core 应用程序 (C#) 网络应用程序(不是网络应用程序...


ASP.NET Core 6 MVC:仅使用授权策略在 HttpPost 上出现 cors 错误

我已将 ASP.NET Core 6 MVC 应用程序添加到 Azure“应用程序注册”,并且我能够使用 Microsoft WebUI 登录并执行 GET 请求来获取例如我的观点。 应用...


游戏的实时 Web API 可以在 ASP.NET Core 和 SQL Server 中实现吗?

您能告诉我游戏的实时 Web API 是否可以在 ASP.NET Core 和 SQL Server 中实现吗? 我们正在开发的 Unity 游戏需要实时 Web API。我们正在使用 SQL


不支持关键字:“服务器”。旧的 ASP.NET Web 表单系统

我有一个使用 .NET 4.0、ASP.NET、Entity Framework、C# 和 SQL Server 2014 的旧系统。 我在尝试运行系统时不断收到此错误,它以前可以工作! “/”应用程序中的服务器错误...


当列表传递给 cshtml 页面时,它不想打开

在此输入图像描述 我最近开始在 ASP.NET 中编写我的第一个项目(名称 - 查找门票(火车/飞机)的网站),我遇到了一个问题,当我想在 ASP.NET 中发送数据时...


如何在 ASP.NET MVC 中将参数和数据从控制器发送到 SignalR hub?

我使用 ASP.NET MVC。我想将数据从控制器发送到集线器以发送给客户端。我在控制器中编写了这段代码: 公共类 SampleController :控制器 { 私人只读 IHubCo...


使用 ASP.NET Core 和 TailwindCSS 进行热重载(或者:向 dotnet watch 添加额外的命令)

我正在研究将 TailwindCSS 与 ASP.NET 结合使用的良好热重载工作流程。 我决定使用 VSCode,因为 VisualStudio 没有良好的顺风扩展,而 Rider 的扩展也不支持...


如何将可疑链接添加到我的 asp.net 网站

我有一个简单的 asp.net 网站。最近,我注意到它在外部添加了一个带有锚标记的 div。我还注意到来自第三方网站的另一个明显的 jQuery 文件链接,该链接...


HTTP 错误 500.37 - ASP.NET Core 应用程序无法在启动时间限制内启动

将新的 .net 8 项目部署到 Windows 2022 服务器和 IIS 中时,尝试启动它时出现此错误: HTTP 错误 500.37 - ASP.NET Core 应用程序无法在启动时启动 时间限制


C# 和 ASP.NET Core MVC:选择 100 个图像时 IFormFileCollection 为 NULL

为什么在 C# 和 ASP.NET Core MVC 中回发到控制器操作时 IFormFileCollection 为 NULL? 如果我选择 10 张图像,它会起作用,如果我选择 100 张图像,它会失败 - 为什么?文件上传有限制吗...


如何使用 Rider IDE 将身份脚手架添加到 ASP.NET CORE 应用程序

我正在观看有关 ASP.NET CORE Identity 的教程,其中讲师通过使用 Visual Studio 搭建脚手架来添加身份,但现在我正在使用 Rider IDE,但我没有看到这样的选项,。 ..


无法在 Azure DevOps 中使用 Visual Studio 17.8.3 包发布 .Net Maui Asp.Net 7 或 8 iOS 应用程序

我的应用程序过去使用 Azure DevOps 发布得很好,当时它是一个面向 iOS 16.1 且支持 15.4 框架的 ASP.net 7 应用程序。我使用的是 Visual Studio Enterprise 2022 17.5.3 包。 我...


尝试在 asp.net core 3 spa 上使用 ADFS 进行身份验证时出现 CORS 错误

我有一个使用 ASP.NET Core 3 构建的应用程序,带有一个 React SPA(该应用程序有一个用于 React 应用程序的 useSpa,后端是应用程序的 BL)。 目前应用正版...


ASP.NET MVC 多选下拉列表

我使用以下代码让用户选择表单上的多个位置。 @Html.DropDownListFor(m => m.location_code, Model.location_type, new { @class = "form-control", @multiple = "mul...


如何在 ASP.NET 中将请求从一项服务桥接到另一项服务

我正在 ASP.NET Core Web API 中开发一项服务,该服务充当另一个服务的代理。对于少数特定端点,它应该自行处理请求,但对于所有其他端点,我希望它...


.net 的 Serilog JSON 格式化程序

我在我的asp.net应用程序中使用serilog,配置如下: 配置: builder.Host.UseSerilog((上下文,loggerConfiguration) => { 记录器配置 .Enrich.FromLogContex...


ASP.NET core razor 页面:<a> 标签未执行 @onclick 中写入的内容

所以我有这行代码(页面名称:壁橱): 添加零件 还有这个...


当从 ASP.NET Core MVC 获取 api 到 Reactjs 时,是什么提示 get 方法返回 HTML 而不是它应该返回的 json 数据?

我正在尝试创建一个应用程序,其中客户端前端使用react.js 制作,后端使用ASP.Net Core MVC。我正在尝试从 api 获取数据以渲染


无法在 Azure DevOps 中使用 Visual Studio 17.8.3 包发布面向 iOS 的 ASP.NET 7 或 8 Maui 应用程序

我的应用程序过去使用 Azure DevOps 发布得很好,当时它是一个面向 iOS 16.1 并具有 15.4 支持框架的 ASP.NET 7 应用程序。我使用的是 Visual Studio Enterprise 2022 17.5.3 包。 我...


将 ASP.NET Core Web API 应用程序的订阅代码放在哪里,这样它就不会阻止进一步的执行

我将以下代码放入 ASP.NET Core Web API 启动中,它仅卡在此处,并且所有处理都挂起。 这种订阅码该放在哪里?后台服务?或者任何东西


为 Serilog 自定义 JSON 日志发送格式

我在我的asp.net应用程序中使用serilog,配置如下: 配置: builder.Host.UseSerilog((上下文,loggerConfiguration) => { 记录器配置 .Enrich.FromLogContex...


Asp.net 7 核心。 Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException:请求内容意外结束

有时,在控制器中处理请求 [API控制器] [路线(“api”)] 公共类 FrontWcController : ControllerBase { [HttpPost(“更改”)] 公共 IActionResult


C# ASP.NET PostBackUrl 到锚点

我这里有这个链接按钮 链接文字 我在后面的代码中为它分配了一个 PostBackURL,如下所示 链接...


ASP.NET Core 应用程序,带 Windows 身份验证、Chrome,如何提示用户输入密码而不是获取 403?

我有一个使用 Windows 身份验证的 ASP.NET Core 8 Web 应用程序。并非组织中的所有用户都有权访问该应用程序。他们必须具有一定的应用程序角色并且......


如何在 ASP.NET Core 中正确使用 Partial View 并验证其模型状态

我正在使用 ASP.NET Core 5 Razor 页面。 我的目标是拥有一组可以在多个页面上使用的部分视图(出于可重用性目的)。每个部分视图都有一个带有自己的自定义发布事件的表单


“razor”和“cshtml”文件有什么区别?

ASP.NET 中的“razor”和“cshtml”文件有什么区别?我们应该在“razor-components”应用程序中使用“.razor”文件而不是“.cshtml&...


在项目中使用 MasterPage.master 时 ASP.NET 如何加载页面?

Links.aspx 基于 MasterPage.master。 答:MasterPage.master、MasterPage.master.cs、Links.aspx 和 Links.aspx.cs 之间的加载顺序是什么? B: jquery-3 的加载顺序是怎样的....


在 Docker 容器中运行的 ASP.NET API 应用程序仅阻止 POST 和 PUT 请求

我在 .NET 应用程序中为 CORS 设置了以下内容: builder.Services.AddCors(选项=> { 选项.AddPolicy(名称:rardkAllowOrigins, 政策=> ...


Struts 2 与 Apache Shiro 集成时如何显示结果页面

使用: struts2 2.5.10, 春天 4.x, struts2-spring-插件2.5.10, 希罗1.4.0, Shiro-Spring 1.4.0。 网络.xml: 使用: struts2 2.5.10, 春季 4.x, struts2-spring-插件2.5.10, 四郎1.4.0, shiro-spring 1.4.0. web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param> <filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>targetFilterLifecycle</param-name> <param-value>true</param-value> </init-param> </filter> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <!-- shiro filter mapping has to be first --> <filter-mapping> <filter-name>shiroFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> <dispatcher>ERROR</dispatcher> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> beanx.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd "> <bean name="loginAction" class="example.shiro.action.LoginAction" > </bean> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager" /> <property name="loginUrl" value="/login.jsp" /> <property name="filterChainDefinitions"> <value> /login.jsp = authc /logout = logout /* = authc </value> </property> </bean> <bean id="iniRealm" class="org.apache.shiro.realm.text.IniRealm"> <property name="resourcePath" value="classpath:shiro.ini" /> </bean> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="realm" ref="iniRealm" /> </bean> <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/> </beans> struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="default" extends="struts-default"> <action name="list" class="loginAction" method="list"> <result name="success">/success.jsp</result> <result name="error">error.jsp</result> </action> </package> </struts> index.jsp: <body> <s:action name="list" /> </body> login.jsp 看起来像: <form name="loginform" action="" method="post"> <table align="left" border="0" cellspacing="0" cellpadding="3"> <tr> <td>Username:</td> <td><input type="text" name="username" maxlength="30"></td> </tr> <tr> <td>Password:</td> <td><input type="password" name="password" maxlength="30"></td> </tr> <tr> <td colspan="2" align="left"><input type="checkbox" name="rememberMe"><font size="2">Remember Me</font></td> </tr> <tr> <td colspan="2" align="right"><input type="submit" name="submit" value="Login"></td> </tr> </table> </form> LoginAction.list(): public String list() { Subject currentUser = SecurityUtils.getSubject(); if(currentUser.isAuthenticated()) {System.out.println("user : "+currentUser.getPrincipal()); System.out.println("You are authenticated!"); } else { System.out.println("Hey hacker, hands up!"); } return "success"; } shiro.ini: [users] root=123,admin guest=456,guest frank=789,roleA,roleB # role name=permission1,permission2,..,permissionN [roles] admin=* roleA=lightsaber:* roleB=winnebago:drive:eagle5 index.jsp、login.jsp、success.jsp放在webapp下 我想要的是:输入LoginAction.list()需要进行身份验证,如果登录成功,则运行LoginAction.list()并返回"success"然后显示定义为Struts操作结果的success.jsp。 现在登录成功后可以执行LoginAction.list(),但是success.jsp不显示,浏览器是空白页面。 为什么? 我找到了原因:我在index.jsp中使用了<s:action name="list" />,但是struts文档说如果我们想用<s:action>看到结果页面,那么我们必须将其属性executeResult设置为true,即就像<s:action name="list" executeResult="true"/>。 在我看来,这有点奇怪,这个属性默认应该是 true。 有一个示例,您应该如何使用 Shiro applicationContext.xml 进行配置: <property name="filterChainDefinitions"> <value> # some example chain definitions: /admin/** = authc, roles[admin] /** = authc # more URL-to-FilterChain definitions here </value> </property> 以 /admin/ 开头的 URL 通过角色 admin 进行保护,任何其他 URL 均不受保护。如果 Struts 操作和结果 JSP 不在受保护区域中,则会显示它们。


ASP.NET Core BackgroundService挂起应用程序

我需要一个将以一定频率执行的后台服务。我还需要能够唤醒这项服务。为此,我使用BackgroundService 和AutoResetEvent。完整的代码是...


© www.soinside.com 2019 - 2024. All rights reserved.