客户ID:1147947322680754 PAT:2a22564a5ce15dd46ee66468097ad0b9
尝试在新的api上配置属性路由后,经过数小时的阅读和挖掘,却无法完成。你是我的不得已。我该怎么办?
我配置了app.UseMvc();在启动并使用以下代码...
这是BaseController的外观;
[ApiController]
public abstract class GKControllerBase : ControllerBase
{
private readonly IHttpContextaccessor _accessor;
public GKControllerBase(IHttpContextaccessor accessor)
{
this._accessor = accessor;
}
}
这是UserController.cs的外观;
[ApiController]
[Route("Services/[controller]/[action]")]
public class UserController : GKControllerBase
{
public UserController(IHttpContextaccessor accessor) : base(accessor)
{
}
[HttpGet] //Services/User/Logout
[UserTypeFilter(UserType.Anonymous,UserTypeFilterMode.SingularDeny,ErrorMessage = "You are not logged in!")]
public object Logout()
{
if (GKManagers.Sessionmanager.TrygetcurrentUser(base.HttpContext,out User user))
{
GKManagers.Sessionmanager.Logout(base.HttpContext,user.UniqueId);
return this.Answer(HttpStatusCode.OK,null,"Logout successful");
}
return this.Answer(HttpStatusCode.InternalServerError);
}
[HttpGet("{username}/{password}")] //Services/User/Login/username/password
[UserTypeFilter(UserType.Anonymous,UserTypeFilterMode.SingularAllow,ErrorMessage = "You are already logged in!")]
public object Login(string username,string password)
{
if (GKManagers.Sessionmanager.TryLogin(base.HttpContext,username,password,out User user))
return this.Answer(HttpStatusCode.OK,user,"Login successful");
return this.Answer(HttpStatusCode.InternalServerError);
}
}
这是GroupController.cs的外观;
[ApiController]
[Route("Services/[controller]/[action]")]
public class GroupController : GKControllerBase
{
public GroupController(IHttpContextaccessor accessor) : base(accessor)
{
}
[HttpGet("{groupID:int}")] //Services/Group/Join/1
[UserTypeFilter(UserType.Anonymous,ErrorMessage = "You are not logged in!")]
[PermissionFilter
(Data.Enums.ApplicationContext.Membership_Group,Operation.CanJoin,ErrorMessage = "You are not permitted to join the %groupName%. You might be already in it.")]
public object Join(Int32 groupID)
{
if (GKManagers.Sessionmanager.TrygetcurrentUser(this.HttpContext,out User currentUser))
{
GKManagers.Database.Membership.groupmembership.Add(new groupmembership()
{
Group = groupID,User = currentUser.UserId,Isactive = true,JoinDate = DateTime.Now,LastactionDate = DateTime.Now,Status = (Int32)Status.active,});
}
return this.Answer(HttpStatusCode.InternalServerError);
}
}
我正在尝试将路由配置为看起来像属性旁边的注释部分。
谢谢!