ci sono un bel po ' modi per risolvere questo.
A seconda delle esigenze, è possibile implementare un IAuthorizationFilter per questo scopo e implementare il metodo OnAuthorization in questo modo.
public void OnAuthorization(AuthorizationContext filterContext)
{
IUser user = _currentUserProvider.CurrentUser;
if (user != null)
{
// you can perform perform additional user-authorization here...
if(_authorizationService.IsAuthorized(user))
{
//user is authorized
return;
}
else
{
HandleUnAuthorizedRequest(filterContext);
return;
}
}
//user is not authenticated (not logged in)
HandleUnAuthenticatedRequest(filterContext);
}
Quindi si utilizza actionFilter sul metodo del controller o sulla classe controller. Vedere http://msdn.microsoft.com/en-us/library/dd410209(v=VS.90).aspx per ulteriori informazioni sui filtri di azione.
Ora, se si desidera che tutte le richieste non autenticate per andare al ClientController, è possibile gestire l'evento AuthenticateRequest
nella classe HttpApplication
(di solito Global.asax.cs) e realizzare qualcosa di simile nel ActionFilter sopra.
Con questo URL soluzione è cambiato, sarebbe bello se URL rimase lo stesso –
I seconda una richiesta di avere l'URL invariato – Phil