与“System.Web.Security.Roles.AddUsersToRole(string[], string)”最匹配的重载方法具有一些无效参数

本文介绍了使用ASP.NET进行用户创建及角色分配的过程,并纠正了一个常见的编程错误:如何正确地使用AddUserToRole方法而非AddUsersToRole来指定单一用户的角色。

MembershipUser userObj = Membership.CreateUser(user, pswd, email, question, answer, true, out status);
            if (userObj != null)
            {
                Roles.AddUsersToRole(userObj.UserName, role);
             
                messageLabel1.Text = "创建用户成功";
                usernameTextBox.Text = "";
                passwordTextBox.Text = "";
                EmailTextBox1.Text = "";
                securityquestionTextBox.Text = "";
                securityanswerTextBox.Text = "";

            }
错误 3 与“System.Web.Security.Roles.AddUsersToRole(string[], string)”最匹配的重载方法具有一些无效参数
错误 4 参数“1”: 无法从“string”转换为“string[]”

========

此种错误是因为AddUsersToRole用错了,这是将一个用户组加入角色中,AddUserToRole是将一个用户加入角色中。所以这里string[],是个数组,但用的时候是单个用户名。

C:\Users\86133\IdeaProjects\tools\src\main\java\com\org\example\tools\controller\AuthController.java:44:64 java: 不兼容的类型: java.lang.String无法转换为java.util.Map<java.lang.String,java.lang.Object> package com.org.example.tools.controller; import com.org.example.tools.dto.request.LoginRequest; import com.org.example.tools.dto.response.ApiResponse; import com.org.example.tools.entity.SysUser; import com.org.example.tools.mapper.SysUserMapper; import com.org.example.tools.security.JwtTokenProvider; import lombok.RequiredArgsConstructor; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.Map; @RestController @RequestMapping("/auth") @RequiredArgsConstructor public class AuthController { private final AuthenticationManager authenticationManager; private final JwtTokenProvider tokenProvider; private final SysUserMapper sysUserMapper; @PostMapping("/login") public ApiResponse<Map<String, Object>> authenticateUser(@RequestBody LoginRequest loginRequest) { // 认证用户 Authentication authentication = authenticationManager.authenticate( new UsernamePasswordAuthenticationToken( loginRequest.getUsername(), loginRequest.getPassword() ) ); SecurityContextHolder.getContext().setAuthentication(authentication); // 生成JWT令牌 SysUser user = sysUserMapper.selectByUsername(loginRequest.getUsername()); String jwt = tokenProvider.createToken(user.getUsername(), user.getRole()); // 准备响应数据 Map<String, Object> response = new HashMap<>(); response.put("token", jwt); response.put("user", user); return ApiResponse.success(response); } }
最新发布
08-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值