我需要为我的MVC应用程序和WebAPI创建身份验证。
我有用户凭据详细信息&角色信息在数据库中的单独表中。任何人都可以建议我可以使用哪种模型来实现这一目标。
由于
答案 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
}