返回未经授权的ViewResult

时间:2018-12-20 12:56:09

标签: c# asp.net-mvc

因此,我已用函数内的代码替换了控制器函数上的[Authorize Attribute],并想尝试返回与属性相同的结果,这是否可能,或者我是否需要做进一步的更改?

我正在尝试从返回ViewResult类型的函数中返回Http 401 Unauthorized

我已经尝试过返回Unauthorized,但是由于返回的是ViewResult类型,因此无法使用。

public ViewResult Function([FromQuery] int? Id)
{
   if (!User.HasRole("GenericRole"))
   {
     return _____;
   }
}

很抱歉,如果我没有提供足够的信息来提出答案

2 个答案:

答案 0 :(得分:1)

您需要返回

return Unauthorized();

或者您可以引发异常

throw new HttpResponseException(HttpStatusCode.Unauthorized);

答案 1 :(得分:0)

如果您希望该视图对具有特定角色的任何用户可用,那么您应该这样做。

    from multiprocessing.pool import ThreadPool
    import pandas as pd        

    def batch_wrapper(batch):
        results = np.dot(self.products, self.users[batch])
        ratings = results.transpose()
        ...
        del results
        gc.collect()
        return pd.DataFrame(data=some_data)

    pool = ThreadPool()
    results = pool.map(batch_wrapper, batches)

    pool.close()
    pool.join()

否则,如果要显示除一个角色以外的所有角色的该视图,请执行此方法。

    [Authorize(Roles = "Administrator")]
    public ViewResult Function([FromQuery] int? Id)
    {
        return View();
    }