2011-07-04 6 views
0

Я разрабатываю сайт, который использует аутентификационный билет из API другой службы. У меня есть метод GetSessionTicket() из API. И теперь вопрос: Могу ли я сделать аутентификацию asp.net, которая зависит только от cookie? Теперь я удалить все раздел о поставщике членства в web.config:Аутентификация ASP.NET

<add name="ApplicationServices" 
    connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
    providerName="System.Data.SqlClient" /> 
<membership> 
    <providers> 
    <clear/> 
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" 
     enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" 
     maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
     applicationName="/" /> 
    </providers> 
</membership> 
<profile> 
    <providers> 
    <clear/> 
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
    </providers> 
</profile>--> 
<roleManager enabled="false"> 
    <providers> 
    <clear/> 
    <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
    <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" /> 
    </providers> 
</roleManager> 

и оставил это:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
</authentication> 

LogOn логика выглядит следующим образом:

var ticket = SecurityService.GetSessionTicket(model.UserName, model.Password); 
FormsAuthentication.SetAuthCookie(ticket.SessionUserId.ToString(), true); 

Это нормально? Теперь моя авторизация ASP.NET основана только на cookie и не требует sql-сервера или aspnetdb.mdf, да?

ответ

1

Да, это хорошо, что вы по существу делаете, реализуя Аутентификация форм без базы данных членства. Вы не обязаны использовать базу данных членства для достижения аутентификации, а настройка файлов cookie в коде - это нормально.

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