C# 基于角色的webapi身份验证
我有下面的令牌生成代码,它可以在没有任何角色的情况下进行身份验证。我需要启用基于角色的身份验证:C# 基于角色的webapi身份验证,c#,.net,authentication,asp.net-web-api,oauth,C#,.net,Authentication,Asp.net Web Api,Oauth,我有下面的令牌生成代码,它可以在没有任何角色的情况下进行身份验证。我需要启用基于角色的身份验证: public void ConfigureOAuth(IAppBuilder app) { double timeout = Convert.ToDouble(ConfigurationManager.AppSettings["Timeout"].ToString()); OAuthAuthorizationServerOptions OAuthserverO
public void ConfigureOAuth(IAppBuilder app)
{
double timeout = Convert.ToDouble(ConfigurationManager.AppSettings["Timeout"].ToString());
OAuthAuthorizationServerOptions OAuthserverOptions = new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(timeout),
Provider = new SimpleAuthorizationServerProvider()
};
//Token generation
app.UseOAuthAuthorizationServer(OAuthserverOptions);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
}
如何对上述代码启用基于角色的身份验证
所以,在我的web api操作中,如果我设置Authorize(Roles=“Admin”),我可以允许或拒绝角色的访问
请给出建议。您可以使用类似于以下内容的代码(假设您自doing token auth起使用API): 请注意,您将如何继承Mvc控制器中的
System.Web.Http.AuthorizeAttribute
而不是System.Web.Mvc.AuthorizeAttribute
。此外,HandleUnauthorizedRequest
的参数类型应为HttpActionContext
,而不是mvc控制器中的AuthorizationContext
现在,在您的api上,您可以使用
[WebAPI授权(Roles=“role”)]
我不在mvc中,我正在使用web api并使用Angular调用这些web api这是为web api编写的
public class WebApiAuthorizeAttribute : System.Web.Http.AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(HttpActionContext ctx)
{
//unauthorized code here
}
//or
protected override bool IsAuthorized(HttpActionContext actionContext)
{
//is authorized
}
}