使用客户用户,角色表

时间:2017-07-14 05:40:33

标签: c# .net sql-server-2008 asp.net-mvc-4 asp.net-web-api

我需要为我的MVC应用程序和WebAPI创建身份验证。

我有用户凭据详细信息&角色信息在数据库中的单独表中。任何人都可以建议我可以使用哪种模型来实现这一目标。

由于

1 个答案:

答案 0 :(得分:0)

如果它是2而不是尝试下面的代码,你使用哪个Web Api,并告诉我是否可以帮助你更多,因为我有像你一样的场景

您必须创建自定义授权过滤器并在ActionMethod上面调用它,

在项目中创建一个不同的类,并在Compile中更改构建模式

  public class BasicAuthenticationAttribute : AuthorizationFilterAttribute
{

    public static bool VaidateUserRoleWise(string username, string password, int RoleId)
    {
        //DO DATABASE CONNECTION DO QUERY HERE 
        if (Username == username && Password == password)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    public override void OnAuthorization(QuizzrApi.Controllers.QuizzrController.InputParamAdminLogin LoginDetails)
    {
        System.Web.Http.Controllers.HttpActionContext actionContext = null;
        if (LoginDetails == null)
        {
            actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized);
        }
        else
        {
            //Bellow is the static method called above will return true or false if user matches
            if (!VaidateUserRoleWise(LoginDetails.UserName, LoginDetails.Password, 1))
            {
                actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized);
            }
        }

        base.OnAuthorization(actionContext);
    }

}

在控制器中:

    [Route("AuthorizeSystemAdmin")]
    [HttpPost]
    [BasicAuthentication]
    public HttpResponseMessage Login([FromBody] InputParamAdminLogin AdminLoginInput)
    {
       //do your logic here
    }