2011-07-04 625 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 server或aspnetdb.mdf,是嗎?

回答

1

是的,這樣做很好,你實質上是在執行表格身份驗證,沒有會員資格數據庫。您不需要使用成員資格數據庫來實現身份驗證,並且在代碼中設置Cookie即可。