2015-01-16 2 views
-1

Как вы вручную настроили сеанс входа в MVC 4? У меня есть метод, который проверяет, является ли пользователь действительным и возвращает true или false клиенту, но как я могу установить сеанс, чтобы методы, которые имеют атрибут [Authorize], будут разрешены в будущих запросах этого пользователя?Как установить сеанс входа в ASP.NET MVC 4?

[AllowAnonymous] 
    [HttpPost] 
    public bool Login(string userName, string password) 
    { 
     var isUserValid = SecurityManager.IsUserValid(userName, password); 
     if (isUserValid) 
      FormsAuthentication.SetAuthCookie(userName, true); 

     return isUserValid ; 
    } 
+0

Установлен файл cookie FormsAuthentication. Это предусмотрено в шаблоне по умолчанию базового приложения MVC. –

+0

Хорошо, так что просто FormsAuthentication.SetAuthCookie (userName, true) должен это сделать, правильно? Как это работает? Мой клиент - это приложение с угловым выражением, поэтому задается вопросом, как это заставляет работать будущие запросы. Есть ли файл cookie, который устанавливается в браузере? Как сервер знает, что будущие запросы принадлежат одному и тому же человеку? – Prabhu

+0

Возможно, имя SetAuth * COOKIE * может дать представление о том, задает ли он cookie? Так работают куки, их отправляют с будущими запросами до истечения срока их действия. –

ответ

1

Хорошо, проверьте файл web.config для FormAuthentication. Пример:

<?xml version="1.0" encoding="utf-8"?> 


<configuration> 
    <configSections> 
    </configSections> 
    <connectionStrings> 
     <add name="EFDbContext" connectionString="Data Source=(localdb)\v11.0;Initial 
       Catalog=SportsStore;Integrated Security=True" 
       providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <appSettings> 
    <add key="webpages:Version" value="3.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    <add key="Email.WriteAsFile" value="true"/> 
    </appSettings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5.1" /> 
    <httpRuntime targetFramework="4.5.1" /> 
    <globalization uiCulture="en-US" culture="en-US" /> 
    <authentication mode="Forms"> 
     <forms loginUrl="∼/Account/Login" timeout="2880" /> 
    </authentication> 
    </system.web> 
</configuration> 
+0

Это было, спасибо. Мне пришлось указать режим в файле конфигурации. – Prabhu

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