public void AuthorizationAttribute_Test() { var sessionItems = new System.Web.SessionState.SessionStateItemCollection(); var controllerContext = new FakeControllerContext(TestHelper.Resolve<TopicsController>(), "http://localhost", null, null, new System.Collections.Specialized.NameValueCollection(), new System.Collections.Specialized.NameValueCollection(), new System.Web.HttpCookieCollection(), sessionItems); var context = new AuthorizationContext(controllerContext, new FakeActionDescriptor()); var att = new RequireAuthorizationAttribute(UserRole.Member); att.Routes.Add(new StrictRoute("login", new MvcRouteHandler()) { Url = "login", Defaults = new System.Web.Routing.RouteValueDictionary(new { controller = "Authentication", action = "Login" }) }); context.Result = null; att.OnAuthorization(context); Assert.IsInstanceOfType(context.Result, typeof(RedirectResult)); //Test with user User user = ServicesTests.GetTestUser(); sessionItems["User"] = new UserState(user, AuthenticationProvider.Facebook); context.Result = null; att.OnAuthorization(context); Assert.IsNull(context.Result); }
public static SessionStateItemCollection GetSessionWithTestUser() { SessionStateItemCollection sessionItems = new SessionStateItemCollection(); User user = ServicesTests.GetTestUser(); sessionItems["User"] = new UserState(user, AuthenticationProvider.Facebook); return sessionItems; }
/// <summary> /// Determines if a user is authorized /// </summary> /// <param name="user"></param> /// <returns></returns> protected virtual bool IsAuthorized(UserState user) { if (user == null) { return false; } if (this.UserRole != null) { if (user.Role < this.UserRole.Value) { return false; } } return true; }