asp.net identitymanager不起作用,他没有将用户与db中的角色绑定(表:AspNetUserRoles)

时间:2017-07-15 08:57:11

标签: c# asp.net asp.net-mvc identity identitymanager

我试图使用IdentityManager(只是第一个),它看起来非常棒,它创造了这个角色(它很酷),但为什么它不会绑定用户所选角色(int idm),因为如果我在Home / Contact(例如)中使用属性[Authorize(Roles =" Admin")],它就不起作用。 它不会将所选角色(从用户界面)保存到数据库中的AspNetUserRoles表。它刚刚保存到AspNetClaims-table。是IdentityManager的错误吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试AuthorizeAttribute并在其中设置自定义错误消息。

public class WebApiAuthorizeAttribute : AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
    {
        if (!actionContext.RequestContext.Principal.Identity.IsAuthenticated)
        {
            //Logic for when api not authenticated
        }
        base.HandleUnauthorizedRequest(actionContext);
    }
}

控制器api方法,其中使用上述授权属性。

[HttpGet]
[WebApiAuthorizeAttribute(Roles="Admin")]      
public async Task<HttpResponseMessage> TestMethod()
{
    return Request.CreateResponse(HttpStatusCode.OK);
}