2015-03-03 8 views
5

Ich habe eine Website, auf der Benutzer auf die Seite "Login" weitergeleitet werden sollen Sie sind nicht angemeldet. Die Benutzer können versuchen, auf die Webseiten zuzugreifen, indem sie eine URL veröffentlichen. Ich möchte es in C# MVC 4.5Wie kann ich Benutzer, die auf der Anmeldeseite angemeldet sind, in C# MVC 4.5 umleiten, wenn sie versuchen, über die URL auf andere Website-Seiten zuzugreifen

Hier möchte ich nicht die Aktion "[Authorize]" zur Verfügung, sofern nicht angemeldet. Es ist Index-Aktion zum Anzeigen der Indexseite.

//Login Controller 
    [AllowAnonymous] 
    public ActionResult Index() 
    { 
     return View(); 
    } 
    [HttpPost] 
    public ActionResult Index(FormCollection frm) 
    { 
     ....//other code 
    } 

[Authorize] 
public ActionResult Index() 
    { 
     List<DTO> obj = objConfigurator.GetDataList(); 
     return View(obj); 
    } 


    public ActionResult Edit(int Id) 
    { 
     DTO obj = objC.GetListById(Id); 
     return View(obj); 
    } 

Antwort

10

Verwenden Sie das Attribut [Authorize] auf Ihrem Controller.

[Authorize] 
public class YourController: Controller 
{ 
. . . 
    [AllowAnonymous] 
    public ActionResult Register() 
    { 
    } 

    [AllowAnonymous] 
    public ActionResult LogIn() 
    { 
    } 
. . . 
} 

Außerdem haben Sie Ihre Login-Seite in der web.config hinzufügen -

<system.web> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Login" timeout="2880" /> 
    </authentication> 
</system.web> 

Sie haben eine andere, noch bessere Option, AuthorizeAttribute als globale Filter in der global.asax-Datei zu registrieren.

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 

{ 
    .... 
    filters.Add(new System.Web.Mvc.AuthorizeAttribute()); 
} 

Auf diese Weise haben Sie nur die [AllowAnonymous] zu Aktionen anzuwenden tha Sie von anonimous Benutzer besucht werden soll.

+0

Ich habe versucht, dies zu verwenden, aber ich kann nicht auf irgendeine Seite meiner Website zugreifen. – Pranav

+0

teilen Code von was auch immer Sie versucht haben – Nikitesh

+0

Siehe meine bearbeitete Antwort. – vortex

Verwandte Themen