我定义了诸如以下的授权属性:
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
filterContext.Result = new RedirectResult("~/Login");
return;
}
var requiredRoles = Roles.Split(Convert.ToChar(",")).ToList();
var roles = ((ClaimsIdentity)filterContext.HttpContext.User.Identity).Claims
.Where(c => c.Type == ClaimTypes.Role)
.Select(c => c.Value);
if (!roles.Any(r => requiredRoles.Contains(r)))
{
filterContext.Result = new RedirectResult("~/Subscriptions/Subscribe");
return;
}
}
出于某种原因,这个代码是抛出以下异常:
其他信息:在建立SQL Server的连接时发生网络相关的或特定于实例的错误。 服务器未找到或无法访问。 验证实例名称是否正确,以及SQL Server配置为允许远程连接。 (提供者:SQL网络接口,错误:26 - 错误定位服务器/实例指定)
我已经测试了不同的控制器像注册是否web配置文件是对我的DB正确配置,它看起来很好。 我不知道这可能是这里的问题?