0

я в настоящее время с помощью [Авторизовать] атрибут в контроллерах ограничить Просмотры быть только если пользователь сайта регистрируется в.Авторизоваться часть представления в ASP.NET MVC

Но как ограничить только часть зрения? например. Что-то вроде этого...?

<% if(SomeoneIsLoggedIn) { %> 
    <div id="protectedContent">...</div> 
<% } %> 

Этот метод вызывается, когда Войти успешно:

public static void CreateLoginCookie(User u) 
{ 
    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(u.Id.ToString(), true, 9*60); 
    string encryptedTicket = FormsAuthentication.Encrypt(ticket); 
    HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket) { Expires = DateTime.Now.AddHours(9) }; 
    HttpContext.Current.Response.Cookies.Add(cookie); 
} 

(что 9 часов, кажется, не работают Кстати, код может быть испорчен, но он работает - он позволяет войти в людях)

Заранее спасибо.

ответ

2

Вы можете проверить, если пользователь вошел в систему с помощью этого:

System.Web.HttpContext.Current.User.Identity.IsAuthenticated; 

Затем, если пользователь вошел в систему вы можете добавить, что ViewData:

ViewData["UserStatus"] = System.Web.HttpContext.Current.User.Identity.IsAuthenticated; 

И тогда на ваш взгляд, вы можете сделать это:

<% if((bool)ViewData["UserStatus"]) { %> 
    Content only for logged in users 
<% } %> 
+0

Вот и все! Спасибо, Гертер – Aximili

0

Добавить BOOL к вашему ViewModel:

public bool ShowProtectedSection {get; set;} 

затем заполнить, что в контроллере в соответствии с бизнес-правилами (Если вы используете ASP.net членства Вы можете использовать роли, или если вы используете свою собственную логику, то просто используйте это, чтобы узнать, имеет ли пользователь доступ).

Добавить чек на Вид:

<% if(Model.ShowProtectedSection) { %> 
    <div id="protectedContent">...</div> 
<% } %> 
+0

Спасибо, Майкл, но что вы вкладываете в метод ShowProtectedSection get? Это мой главный вопрос. Я не уверен, как этот атрибут [Авторизовать] работает. У меня нет своей логики. Я добавлю метод Login к вопросу. – Aximili

Смежные вопросы