2011-07-04 10 views
0

他のサービスのAPIからの認証チケットを使用するサイトをいくつか開発します。 APIからメソッドGetSessionTicket()があります。そして今質問: 私はasp.net認証を行うことができますthatsは、クッキーからのみですか? 今私は、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> 

[ログオンロジックは次のようになります。

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

は、それは大丈夫ですか?さて、私のASP.NET認証はCookieのみに基づいており、SQL Serverやaspnetdb.mdfは必要ありません。

答えて

1

はい、これは問題ありません。基本的にはフォームの認証をメンバーシップデータベースなしで実装しています。認証を達成するためにメンバーシップデータベースを使用する必要はなく、コードでクッキーを設定することもできます。