csc*_*wek 5 asp.net-mvc asp.net-mvc-5 asp.net-identity
我正在尝试创建一个使用Windows身份验证但使用从用户模型中提取的角色的MVC5应用程序.
我已经搜索过高低的示例,但我能找到的唯一一个基于旧的ASP.NET身份框架.
有人关心我指向正确的方向吗?!
谢谢!
所以我想出了一种方法来解决这个问题。我创建了一个自定义授权属性来检查角色的用户模型。
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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
想法?
归档时间: |
|
查看次数: |
1597 次 |
最近记录: |