我们实现了自定义AuthorizationManager。我们设计了一个存储过程,它不是将逻辑放在代码中,而是根据具有控制器和操作的表检查用户角色,并返回0或1进行访问。然后AuthorizationManager处理结果并返回true或false。一切正常但当它返回false时,它会自动重定向到登录页面并要求用户登录,即使用户已经过身份验证。是否可以覆盖此行为并使用包含错误消息的ViewBag重定向到错误页面。我已经在线查看,但我找不到任何东西。
public class AuthorizationManager : ClaimsAuthorizationManager
{
private testDbContext db = new testDbContext();
public override bool CheckAccess(AuthorizationContext context)
。 。 。 。
string username = System.Web.HttpContext.Current.Session["Username"].ToString();
var AuthoriseYN = db.Database.SqlQuery<AuthoriseViewModel>("EXEC spControllerActionRole @Controller, @Action, @Username",
new System.Data.SqlClient.SqlParameter("Controller", resrce.Value),
new System.Data.SqlClient.SqlParameter("Action", action.Value),
new System.Data.SqlClient.SqlParameter("Username", username)
).ToList();
bool authorise = AuthoriseYN[0].Authorise;
if (authorise == true)
{
return true;
}
return false