Ověřit uživatelských dat před začátkem akce

hlasů
1

Mám uživatelský model, který vyžaduje, aby uživatel změnit své heslo jednou za tři měsíce. Musím nějak zjistit, zda je přihlášen uživatel (necháme anonymní prohlížeče na určitých úsecích na místě), a pokud je jejich heslo vypršelo, nutí je vstoupit do nové, než budou moci dělat nic jiného.

Brutální síly způsob, jak toho dosáhnout, by bylo přidat trochu kódu každé akce (kromě akcí changePassword na účet). Například:

var authenticatedUser = GetAuthenticatedUser();
if (authenticatedUser != null && authenticatedUser.IsPasswordExpired)
    return RedirectToAction(Account, ChangePassword);

Je zřejmé, že je to hrozný způsob, jak vyřešit tento problém, ale nejsem si jistý, co je správný způsob, jak to udělat, je. Nějaké nápady? Jsem si jistý, že budeme muset přidat další uživatelská data kontroly, jako je to v budoucnosti, tak bych opravdu rád, najít dobré řešení pro to teď.

Položena 26/08/2009 v 23:01
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
4

Já vlastního ověřování v mé třídě základna regulátoru (všichni mí regulátory odvodit z toho). Můžete přepsat chráněnou metodu Controller.OnAuthorization. Všimněte si, že OnAuthorization volána po metodě Controller.Initialize, takže když dáte jinou vlastní logiku v metodě Inicializace, jen si uvědomit, že toto je nazýváno jako první.

    /// <summary>
    /// Called when authorization occurs.
    /// </summary>
    /// <param name="filterContext">Contains information about the current request and action.</param>
    protected override void OnAuthorization(AuthorizationContext filterContext)
    {
        // Do custom authentication here.
        Authenticate();

        base.OnAuthorization(filterContext);
    }
Odpovězeno 27/08/2009 v 03:30
zdroj uživatelem

hlasů
0

Dalo by se napsat svůj vlastní modulu HTTP a ověřit ji na každou žádost jednou. Můžete odvodit z modul HTTP a držet ji v sekci konfigurace web.config httpModules.

Odpovězeno 26/08/2009 v 23:04
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more