我正在尝试创建一个使用 Windows 身份验证但使用从用户模型中提取的角色的 MVC5 应用程序。
我到处搜索示例,但我能找到的唯一示例是基于旧的 ASP.NET 身份框架的。
有人愿意指出我正确的方向吗?
Thanks!
所以我想出了一种方法来解决这个问题。我创建了一个自定义授权属性来检查角色的用户模型。
using System.Linq;
using System.Web;
using System.Web.Mvc;
using App.Models;
using System.Security.Claims;
namespace App.Extensions.Attributes
{
public class AuthorizeUser : AuthorizeAttribute
{
Context context = new Context();
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (httpContext == null)
return false;
string login = ClaimsPrincipal.Current.Claims.ElementAt(1).Value.Split('@')[0];
string[] roles = base.Roles.Split(',');
User user = context.Users.FirstOrDefault(u => u.Login == login);
if (user == null)
return false;
else if (base.Roles == "")
return true;
else
return roles.Contains(user.Role.ToString());
}
}
}
想法?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)