根据用户类型登录



我正在使用 asp.net mvc 3制作一个Web应用程序,它也具有登录功能。

有3种不同类型的用户将使用该网站:管理员,运营商和分销商。

如何创建限制分销商访问网站管理员和运营商部分的登录名。同样,操作员也不应能够访问管理员和分销商部分。此外,管理员不应能够访问其他类型的用户部分,即站点应在登录后将管理员类型的用户重定向到他自己的网站部分。

最后,没有人应该能够在不登录的情况下访问自己的网站部分。

请谁能帮我。

查看 ASP.NET 的成员模型。此模型用于对 Web 应用程序不同部分的用户进行身份验证和授权。

使用成员身份模型,在应用程序中定义三个角色:管理员、操作员和分发服务器。当然,也可以在应用程序中创建用户,并将他们划分为这些角色。

最后是实际的身份验证和授权。使用"授权"属性可以定义用户必须具有哪个角色才能访问网站的某个部分。

[Authorize(Roles = "Operator")]
public ActionResult OperatorOnlyStuff()
{
    return View();
}

为了确保用户应该登录才能访问您网站上的任何内容,请定义一个自定义的经过身份验证的路由约束。

public class AuthenticatedRouteConstraint : IRouteConstraint
{
    public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
    {
        return httpContext.Request.IsAuthenticated;
    }
}

并在默认路由中使用此自定义身份验证路由约束:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    new { isAuthenticated = new AuthenticatedConstraint()}
);

最新更新