C# 返回未经授权的查看结果
因此,我已将控制器函数上的C# 返回未经授权的查看结果,c#,asp.net-mvc,C#,Asp.net Mvc,因此,我已将控制器函数上的[Authorize Attribute]替换为函数中的代码,并希望尝试返回与属性相同的结果,这是可能的还是我必须进行进一步更改 我试图从返回viewsult类型的函数返回一个http401 我已经尝试过未经授权返回,但这将不起作用,因为我返回的是ViewResult类型 public ViewResult Function([FromQuery] int? Id) { if (!User.HasRole("GenericRole")) { ret
[Authorize Attribute]
替换为函数中的代码,并希望尝试返回与属性相同的结果,这是可能的还是我必须进行进一步更改
我试图从返回viewsult类型的函数返回一个http401
我已经尝试过未经授权返回,但这将不起作用,因为我返回的是ViewResult类型
public ViewResult Function([FromQuery] int? Id)
{
if (!User.HasRole("GenericRole"))
{
return _____;
}
}
如果我没有提供足够的信息来制定答案,请道歉您需要返回
return Unauthorized();
或者您可以抛出异常
throw new HttpResponseException(HttpStatusCode.Unauthorized);
如果您希望此视图可供具有特定角色的任何用户使用,那么您应该这样做
[Authorize(Roles = "Administrator")]
public ViewResult Function([FromQuery] int? Id)
{
return View();
}
或者,如果您希望为除一个角色之外的所有角色显示此视图,请按此方式执行
[Authorize]
public ActionResult Function([FromQuery] int? Id)
{
if (!User.HasRole("GenericRole"))
return new HttpUnauthorizedResult();
return View();
}
根据MVC/WebAPI的版本,可能是这样的:
返回新的HttpUnauthorizedResult()
注意,这将是一个ActionResult
,而不是ViewResult
。我假设您正在使用旧的asp.net mvc,查看您的返回类型ViewResult
可能与我尝试过的“return new HttpUnauthorizedResult();”重复,但得到一个“找不到类型或命名空间名称”-错误?我最终使用了您的第一个解决方案,并切换到返回类型Actionresult